Mercurial > treepkg
annotate test/test_readconfig.py @ 232:e3cda08d2619
When checking whether to build a new revision, also update the rules
working copy, use it's revision too when comparing the current revision
with the already built revisions and use it when building a new revision.
Update the tests for this.
Part of this change is that now, the default revision for the rules is 0
not 1 as previously. To avoid extra builds, existing treepkg instances
will have to be updated so that the directories end in -0 not -1. There
will be a tool to help with this.
author | Bernhard Herzog <bh@intevation.de> |
---|---|
date | Tue, 13 Jan 2009 15:01:22 +0000 |
parents | e1c7cd896310 |
children | eaa696629a91 |
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): |
185
e1c7cd896310
Rework test/filesupport.py so that test cases always use their own
Bernhard Herzog <bh@intevation.de>
parents:
167
diff
changeset
|
65 self.directory = self.create_files("treepkg", self.files) |
114
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
66 self.old_path = sys.path |
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
67 sys.path = [self.directory] + sys.path |
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
68 |
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
69 def tearDown(self): |
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
70 sys.path = self.old_path |
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
71 |
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
72 def test_readconfig(self): |
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
73 config_file = os.path.join(self.directory, "treepkg.cfg") |
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
74 treepkg_opts, packager_opts = read_config(config_file) |
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
75 self.assertEquals(treepkg_opts, |
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
76 dict(instructions_file="/home/builder/mill/instructions", |
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
77 check_interval=3600)) |
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
78 self.assertEquals(sorted(packager_opts, |
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
79 key=operator.itemgetter("name")), |
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
80 [ |
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
81 dict(name="extraargs", |
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
82 base_dir="/home/builder/mill/tracks/extraargs", |
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
83 deb_email="treepkg@example.com", |
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
84 deb_fullname="TreePKG", |
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
85 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
|
86 handle_dependencies=False, |
114
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
87 packager_class="readconfig_test.extraargs", |
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
88 pbuilderrc="/home/builder/mill/pbuilder/pbuilderrc", |
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
89 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
|
90 signing_key_id="", |
114
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
91 svn_url="svn://example.com/extraargs/trunk", |
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
92 orig_tarball=("/home/builder/mill/" |
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
93 "tracks/extraargs/mytarball.tgz")), |
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
94 dict(name="simple", |
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
95 base_dir="/home/builder/mill/tracks/simple", |
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
96 deb_email="treepkg@example.com", |
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
97 deb_fullname="TreePKG", |
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
98 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
|
99 handle_dependencies=True, |
114
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
100 packager_class="readconfig_test.simple", |
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
101 pbuilderrc="/home/builder/mill/pbuilder/pbuilderrc", |
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
102 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
|
103 signing_key_id="abcd1234", |
114
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
104 svn_url="svn://example.com/simple/trunk")]) |