view test/test_readconfig.py @ 219:0d227defc124

Use the recipes.kde_enterprise_4.base module to define the kdebase_runtime packager
author Bernhard Herzog <bh@intevation.de>
date Tue, 06 Jan 2009 16:34:01 +0000
parents e1c7cd896310
children eaa696629a91
line wrap: on
line source
# Copyright (C) 2008 by Intevation GmbH
# Authors:
# Bernhard Herzog <bh@intevation.de>
#
# This program is free software under the GPL (>=v2)
# Read the file COPYING coming with the software for details.

"""Tests for the treepkg.readconfig module"""

import sys
import os
import operator
import unittest

from filesupport import FileTestMixin

from treepkg.readconfig import read_config


class TestReadConfig(unittest.TestCase, FileTestMixin):

    config_contents = """\
[DEFAULT]
treepkg_dir: /home/builder/mill
tracks_dir: %(treepkg_dir)s/tracks
root_cmd: sudo
pbuilder_dir: %(treepkg_dir)s/pbuilder
pbuilderrc: %(pbuilder_dir)s/pbuilderrc
deb_email: treepkg@example.com
deb_fullname: TreePKG
debrevision_prefix: treepkg
handle_dependencies: False

[treepkg]
instructions_file: %(treepkg_dir)s/instructions
check_interval: 3600

[pkg_simple]
svn_url: svn://example.com/%(name)s/trunk
base_dir: %(tracks_dir)s/%(name)s
packager_class: readconfig_test.%(name)s
handle_dependencies: True
signing_key_id: abcd1234

[pkg_extraargs]
svn_url: svn://example.com/%(name)s/trunk
base_dir: %(tracks_dir)s/%(name)s
packager_class: readconfig_test.extraargs
orig_tarball: %(base_dir)s/mytarball.tgz
"""

    files = [("treepkg.cfg", config_contents),
             ("readconfig_test",
              [("__init__.py", ""),
               ("simple.py",
                "\n".join(["class SourcePackager:",
                           "    pass",
                           ""])),
               ("extraargs.py",
                "\n".join(["class PackageTrack:",
                           "    extra_config_desc=['orig_tarball']",
                           ""]))])]

    def setUp(self):
        self.directory = self.create_files("treepkg", self.files)
        self.old_path = sys.path
        sys.path = [self.directory] + sys.path

    def tearDown(self):
        sys.path = self.old_path

    def test_readconfig(self):
        config_file = os.path.join(self.directory, "treepkg.cfg")
        treepkg_opts, packager_opts = read_config(config_file)
        self.assertEquals(treepkg_opts,
                    dict(instructions_file="/home/builder/mill/instructions",
                         check_interval=3600))
        self.assertEquals(sorted(packager_opts,
                                 key=operator.itemgetter("name")),
                          [
            dict(name="extraargs",
                 base_dir="/home/builder/mill/tracks/extraargs",
                 deb_email="treepkg@example.com",
                 deb_fullname="TreePKG",
                 debrevision_prefix="treepkg",
                 handle_dependencies=False,
                 packager_class="readconfig_test.extraargs",
                 pbuilderrc="/home/builder/mill/pbuilder/pbuilderrc",
                 root_cmd=['sudo'],
                 signing_key_id="",
                 svn_url="svn://example.com/extraargs/trunk",
                 orig_tarball=("/home/builder/mill/"
                               "tracks/extraargs/mytarball.tgz")),
            dict(name="simple",
                 base_dir="/home/builder/mill/tracks/simple",
                 deb_email="treepkg@example.com",
                 deb_fullname="TreePKG",
                 debrevision_prefix="treepkg",
                 handle_dependencies=True,
                 packager_class="readconfig_test.simple",
                 pbuilderrc="/home/builder/mill/pbuilder/pbuilderrc",
                 root_cmd=['sudo'],
                 signing_key_id="abcd1234",
                 svn_url="svn://example.com/simple/trunk")])
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)