Mercurial > treepkg
view test/test_readconfig.py @ 293:faeeac2c4c71
Replace debrevision_prefix with pkg_revision_template. Their meaning is
similar, but the template is not just a prefix, it's a template for
Python's %-based string formatting. This allows more complex
configuration to be done with command line settings so that it's easy to
do a one-off build with a package revision like "kk5.2".
author | Bernhard Herzog <bh@intevation.de> |
---|---|
date | Tue, 06 Oct 2009 13:13:04 +0000 |
parents | eaa696629a91 |
children | 4dd6ec3a1151 |
line wrap: on
line source
# Copyright (C) 2008, 2009 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 pkg_revision_template: treepkg%%(pkg_revision)d 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 rules_svn_url: file:///tmp/my-debian-repository """ 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", pkg_revision_template="treepkg%(pkg_revision)d", 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", rules_svn_url="file:///tmp/my-debian-repository", 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", rules_svn_url="", pkg_revision_template="treepkg%(pkg_revision)d", 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")])