annotate test/test_readconfig.py @ 144:dd54ef8a9244

New file. Script to update an existing treepkg installation to the filesystem layout of the current version
author Bernhard Herzog <bh@intevation.de>
date Mon, 02 Jun 2008 17:44:19 +0000
parents ce9f046058b5
children 36004ee0b3a1
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
114
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
43
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
44 [pkg_extraargs]
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
45 svn_url: svn://example.com/%(name)s/trunk
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
46 base_dir: %(tracks_dir)s/%(name)s
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
47 packager_class: readconfig_test.extraargs
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
48 orig_tarball: %(base_dir)s/mytarball.tgz
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
49 """
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 files = [("treepkg.cfg", config_contents),
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
52 ("readconfig_test",
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
53 [("__init__.py", ""),
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
54 ("simple.py",
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
55 "\n".join(["class SourcePackager:",
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
56 " pass",
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
57 ""])),
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
58 ("extraargs.py",
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
59 "\n".join(["class PackageTrack:",
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
60 " extra_config_desc=['orig_tarball']",
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
61 ""]))])]
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 def setUp(self):
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
64 self.directory = self.create_temp_dir(self.id())
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
65 self.create_files(self.directory, self.files)
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'],
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
90 svn_url="svn://example.com/extraargs/trunk",
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
91 orig_tarball=("/home/builder/mill/"
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
92 "tracks/extraargs/mytarball.tgz")),
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
93 dict(name="simple",
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
94 base_dir="/home/builder/mill/tracks/simple",
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
95 deb_email="treepkg@example.com",
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
96 deb_fullname="TreePKG",
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
97 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
98 handle_dependencies=True,
114
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
99 packager_class="readconfig_test.simple",
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
100 pbuilderrc="/home/builder/mill/pbuilder/pbuilderrc",
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
101 root_cmd=['sudo'],
02c261e4443f Extend treepkg.readconfig.read_config:
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
102 svn_url="svn://example.com/simple/trunk")])
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)