Mercurial > treepkg
annotate test/test_readconfig.py @ 248:5dd710b167d2
Make bin/listpackages.py handle corner cases like no revisions built or
--revision referring to non-exisiting revisions better. Add tests for this.
author | Bernhard Herzog <bh@intevation.de> |
---|---|
date | Fri, 06 Mar 2009 19:57:04 +0000 |
parents | eaa696629a91 |
children | faeeac2c4c71 |
rev | line source |
---|---|
234
eaa696629a91
Add a way to specify the svn URL of the repository with the debian rules
Bernhard Herzog <bh@intevation.de>
parents:
185
diff
changeset
|
1 # Copyright (C) 2008, 2009 by Intevation GmbH |
114
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 |
234
eaa696629a91
Add a way to specify the svn URL of the repository with the debian rules
Bernhard Herzog <bh@intevation.de>
parents:
185
diff
changeset
|
50 rules_svn_url: file:///tmp/my-debian-repository |
114
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 |
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
53 files = [("treepkg.cfg", config_contents), |
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
54 ("readconfig_test", |
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
55 [("__init__.py", ""), |
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
56 ("simple.py", |
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
57 "\n".join(["class SourcePackager:", |
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
58 " pass", |
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
59 ""])), |
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
60 ("extraargs.py", |
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
61 "\n".join(["class PackageTrack:", |
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
62 " extra_config_desc=['orig_tarball']", |
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 |
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
65 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
|
66 self.directory = self.create_files("treepkg", self.files) |
114
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", |
234
eaa696629a91
Add a way to specify the svn URL of the repository with the debian rules
Bernhard Herzog <bh@intevation.de>
parents:
185
diff
changeset
|
93 rules_svn_url="file:///tmp/my-debian-repository", |
114
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
94 orig_tarball=("/home/builder/mill/" |
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
95 "tracks/extraargs/mytarball.tgz")), |
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
96 dict(name="simple", |
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
97 base_dir="/home/builder/mill/tracks/simple", |
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
98 deb_email="treepkg@example.com", |
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
99 deb_fullname="TreePKG", |
234
eaa696629a91
Add a way to specify the svn URL of the repository with the debian rules
Bernhard Herzog <bh@intevation.de>
parents:
185
diff
changeset
|
100 rules_svn_url="", |
114
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
101 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
|
102 handle_dependencies=True, |
114
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
103 packager_class="readconfig_test.simple", |
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
104 pbuilderrc="/home/builder/mill/pbuilder/pbuilderrc", |
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
105 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
|
106 signing_key_id="abcd1234", |
114
02c261e4443f
Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
107 svn_url="svn://example.com/simple/trunk")]) |