annotate test/test_readconfig.py @ 171:c0ea6cbb0fd2

Add "--debbuildopts -b" to "pbuilder build" command line to stop pbuilder from creating a source package. The .changes would otherwise contain references to that new source package instead of the one we passed to pbuilder. The checksums for the two source packages would be different so the .changes file would not match the source package that treepkg produces.
author Bernhard Herzog <bh@intevation.de>
date Mon, 23 Jun 2008 16:12:01 +0000
parents 36004ee0b3a1
children e1c7cd896310
rev   line source
114
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
1 # Copyright (C) 2008 by Intevation GmbH
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
2 # Authors:
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
3 # Bernhard Herzog <bh@intevation.de>
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
4 #
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
5 # This program is free software under the GPL (>=v2)
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
6 # Read the file COPYING coming with the software for details.
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
7
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
8 """Tests for the treepkg.readconfig module"""
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
9
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
10 import sys
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
11 import os
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
12 import operator
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
13 import unittest
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
14
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
15 from filesupport import FileTestMixin
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
16
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
17 from treepkg.readconfig import read_config
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
18
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
19
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
20 class TestReadConfig(unittest.TestCase, FileTestMixin):
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
21
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
22 config_contents = """\
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
23 [DEFAULT]
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
24 treepkg_dir: /home/builder/mill
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
25 tracks_dir: %(treepkg_dir)s/tracks
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
26 root_cmd: sudo
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
27 pbuilder_dir: %(treepkg_dir)s/pbuilder
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
28 pbuilderrc: %(pbuilder_dir)s/pbuilderrc
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
29 deb_email: treepkg@example.com
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
30 deb_fullname: TreePKG
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
31 debrevision_prefix: treepkg
129
ce9f046058b5 Add the handle_dependencies Option for the config file. Extend the test
Bernhard Herzog <bh@intevation.de>
parents: 114
diff changeset
32 handle_dependencies: False
114
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
33
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
34 [treepkg]
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
35 instructions_file: %(treepkg_dir)s/instructions
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
36 check_interval: 3600
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
37
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
38 [pkg_simple]
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
39 svn_url: svn://example.com/%(name)s/trunk
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
40 base_dir: %(tracks_dir)s/%(name)s
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
41 packager_class: readconfig_test.%(name)s
129
ce9f046058b5 Add the handle_dependencies Option for the config file. Extend the test
Bernhard Herzog <bh@intevation.de>
parents: 114
diff changeset
42 handle_dependencies: True
167
36004ee0b3a1 Introduce package track config option signing_key_id to specify the
Bernhard Herzog <bh@intevation.de>
parents: 129
diff changeset
43 signing_key_id: abcd1234
114
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
44
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
45 [pkg_extraargs]
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
46 svn_url: svn://example.com/%(name)s/trunk
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
47 base_dir: %(tracks_dir)s/%(name)s
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
48 packager_class: readconfig_test.extraargs
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
49 orig_tarball: %(base_dir)s/mytarball.tgz
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
50 """
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
51
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
52 files = [("treepkg.cfg", config_contents),
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
53 ("readconfig_test",
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
54 [("__init__.py", ""),
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
55 ("simple.py",
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
56 "\n".join(["class SourcePackager:",
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
57 " pass",
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
58 ""])),
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
59 ("extraargs.py",
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
60 "\n".join(["class PackageTrack:",
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
61 " extra_config_desc=['orig_tarball']",
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
62 ""]))])]
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
63
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
64 def setUp(self):
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
65 self.directory = self.create_temp_dir(self.id())
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
66 self.create_files(self.directory, self.files)
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
67 self.old_path = sys.path
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
68 sys.path = [self.directory] + sys.path
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
69
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
70 def tearDown(self):
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
71 sys.path = self.old_path
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
72
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
73 def test_readconfig(self):
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
74 config_file = os.path.join(self.directory, "treepkg.cfg")
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
75 treepkg_opts, packager_opts = read_config(config_file)
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
76 self.assertEquals(treepkg_opts,
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
77 dict(instructions_file="/home/builder/mill/instructions",
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
78 check_interval=3600))
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
79 self.assertEquals(sorted(packager_opts,
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
80 key=operator.itemgetter("name")),
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
81 [
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
82 dict(name="extraargs",
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
83 base_dir="/home/builder/mill/tracks/extraargs",
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
84 deb_email="treepkg@example.com",
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
85 deb_fullname="TreePKG",
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
86 debrevision_prefix="treepkg",
129
ce9f046058b5 Add the handle_dependencies Option for the config file. Extend the test
Bernhard Herzog <bh@intevation.de>
parents: 114
diff changeset
87 handle_dependencies=False,
114
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
88 packager_class="readconfig_test.extraargs",
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
89 pbuilderrc="/home/builder/mill/pbuilder/pbuilderrc",
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
90 root_cmd=['sudo'],
167
36004ee0b3a1 Introduce package track config option signing_key_id to specify the
Bernhard Herzog <bh@intevation.de>
parents: 129
diff changeset
91 signing_key_id="",
114
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
92 svn_url="svn://example.com/extraargs/trunk",
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
93 orig_tarball=("/home/builder/mill/"
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
94 "tracks/extraargs/mytarball.tgz")),
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
95 dict(name="simple",
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
96 base_dir="/home/builder/mill/tracks/simple",
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
97 deb_email="treepkg@example.com",
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
98 deb_fullname="TreePKG",
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
99 debrevision_prefix="treepkg",
129
ce9f046058b5 Add the handle_dependencies Option for the config file. Extend the test
Bernhard Herzog <bh@intevation.de>
parents: 114
diff changeset
100 handle_dependencies=True,
114
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
101 packager_class="readconfig_test.simple",
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
102 pbuilderrc="/home/builder/mill/pbuilder/pbuilderrc",
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
103 root_cmd=['sudo'],
167
36004ee0b3a1 Introduce package track config option signing_key_id to specify the
Bernhard Herzog <bh@intevation.de>
parents: 129
diff changeset
104 signing_key_id="abcd1234",
114
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
105 svn_url="svn://example.com/simple/trunk")])
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)