Mercurial > treepkg
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")]) |