Mercurial > treepkg
view test/test_readconfig.py @ 557:9824e409388b
Refactor git branching
If a checkout is already available and the branch is changed in
the config git command would always fail because it doesn't know
the branch to track. Therefore always check if the branch is
locally available and if not checkout the remote branch
author | Bjoern Ricks <bricks@intevation.de> |
---|---|
date | Fri, 02 Sep 2011 08:45:28 +0000 |
parents | d26642ed6afa |
children |
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 builderconfig: %(pbuilder_dir)s/pbuilderrc deb_email: treepkg@example.com deb_fullname: TreePKG pkg_revision_template: treepkg%%(pkg_revision)s handle_dependencies: False [treepkg] instructions_file: %(treepkg_dir)s/instructions check_interval: 3600 name: testtreepkg [pkg_simple] pkg_basename: simple1 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 changelog_msg_template: Update to feature branch r%%(revision)s version_template: 1.0.svn%%(revision)s os: foo os status_hook: echo simple hook [pkg_extraargs] url: svn://example.com/%(name)s/trunk svn_subset: -N . subdir svn_externals: scripts admin base_dir: %(tracks_dir)s/%(name)s packager_class: readconfig_test.extraargs orig_tarball: %(base_dir)s/mytarball.tgz rules_url: file:///tmp/my-debian-repository deb_build_options: parallel=2 os: bar os status_hook: echo extra hook """ 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, name="testtreepkg", treepkg_dir="/home/builder/mill", tracks_dir="/home/builder/mill/tracks")) self.assertEquals(sorted(packager_opts, key=operator.itemgetter("name")), [ dict(name="extraargs", base_dir="/home/builder/mill/tracks/extraargs", changelog_msg_template="Update to revision %(revision)s", deb_email="treepkg@example.com", deb_fullname="TreePKG", deb_build_options="parallel=2", pkg_revision_template="treepkg%(pkg_revision)s", handle_dependencies=False, packager_class="readconfig_test.extraargs", builderconfig="/home/builder/mill/pbuilder/pbuilderrc", # pkg_basename is passed as an empty string by default. # The PackageTrack an empty pkg_basename it with the # value of name pkg_basename="", root_cmd=['sudo'], signing_key_id="", svn_externals=["scripts", "admin"], svn_subset=[(".", False), ("subdir", True)], url="svn://example.com/extraargs/trunk", rules_url="file:///tmp/my-debian-repository", version_template="%(revision)s", orig_tarball=("/home/builder/mill/" "tracks/extraargs/mytarball.tgz"), branch="", builder_cls="PBuilder", os="bar os", svn_url="", scm_type="svn", rules_scm_type="svn", status_hook="echo extra hook"), dict(name="simple", base_dir="/home/builder/mill/tracks/simple", changelog_msg_template=("Update to feature branch" " r%(revision)s"), deb_email="treepkg@example.com", deb_fullname="TreePKG", deb_build_options="", rules_url="", pkg_revision_template="treepkg%(pkg_revision)s", handle_dependencies=True, packager_class="readconfig_test.simple", builderconfig="/home/builder/mill/pbuilder/pbuilderrc", pkg_basename="simple1", root_cmd=['sudo'], signing_key_id="abcd1234", svn_externals=[], svn_subset=[], url="svn://example.com/simple/trunk", version_template="1.0.svn%(revision)s", branch="", builder_cls="PBuilder", os="foo os", svn_url="", scm_type="svn", rules_scm_type="svn", status_hook="echo simple hook")]) def main(): unittest.main() if __name__ == "__main__": main()