annotate test/test_builder.py @ 346:9cb4ed04434f

catch OSErrors if some programs are not installed
author Bjoern Ricks <bricks@intevation.de>
date Mon, 26 Apr 2010 10:12:35 +0000
parents f06f707d9fda
children
rev   line source
296
ce7be2fb93ee Make it easy to install extra binaries into subdirectories of extra-pkg.
Bernhard Herzog <bh@intevation.de>
parents: 209
diff changeset
1 # Copyright (C) 2007, 2008, 2009 by Intevation GmbH
118
9d59ed0e3116 Add test/test_builder.py with tests for treepkg.builder
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
2 # Authors:
9d59ed0e3116 Add test/test_builder.py with tests for treepkg.builder
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
3 # Bernhard Herzog <bh@intevation.de>
9d59ed0e3116 Add test/test_builder.py with tests for treepkg.builder
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
4 #
9d59ed0e3116 Add test/test_builder.py with tests for treepkg.builder
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
5 # This program is free software under the GPL (>=v2)
9d59ed0e3116 Add test/test_builder.py with tests for treepkg.builder
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
6 # Read the file COPYING coming with the software for details.
9d59ed0e3116 Add test/test_builder.py with tests for treepkg.builder
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
7
9d59ed0e3116 Add test/test_builder.py with tests for treepkg.builder
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
8 """Tests for treepkg.builder"""
9d59ed0e3116 Add test/test_builder.py with tests for treepkg.builder
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
9
9d59ed0e3116 Add test/test_builder.py with tests for treepkg.builder
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
10 import sys
9d59ed0e3116 Add test/test_builder.py with tests for treepkg.builder
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
11 import os
9d59ed0e3116 Add test/test_builder.py with tests for treepkg.builder
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
12 import unittest
170
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
13 import StringIO
118
9d59ed0e3116 Add test/test_builder.py with tests for treepkg.builder
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
14
9d59ed0e3116 Add test/test_builder.py with tests for treepkg.builder
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
15 from treepkg.builder import PBuilder
121
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
16 from treepkg.run import call
118
9d59ed0e3116 Add test/test_builder.py with tests for treepkg.builder
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
17
9d59ed0e3116 Add test/test_builder.py with tests for treepkg.builder
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
18 from filesupport import FileTestMixin
9d59ed0e3116 Add test/test_builder.py with tests for treepkg.builder
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
19
9d59ed0e3116 Add test/test_builder.py with tests for treepkg.builder
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
20 # helper program to dump the command line arguments into a file so that
126
68d829cac3ff New parameter for PBuilder.build: extra_env, a mapping with extra
Bernhard Herzog <bh@intevation.de>
parents: 122
diff changeset
21 # test cases can check them. Also if the environment variable
68d829cac3ff New parameter for PBuilder.build: extra_env, a mapping with extra
Bernhard Herzog <bh@intevation.de>
parents: 122
diff changeset
22 # TREEPKG_TEST is set, create the file named by it.
118
9d59ed0e3116 Add test/test_builder.py with tests for treepkg.builder
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
23 dump_command_line_py = """
126
68d829cac3ff New parameter for PBuilder.build: extra_env, a mapping with extra
Bernhard Herzog <bh@intevation.de>
parents: 122
diff changeset
24 import sys, os
118
9d59ed0e3116 Add test/test_builder.py with tests for treepkg.builder
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
25 open(sys.argv[1], 'w').write(repr(sys.argv[2:]))
126
68d829cac3ff New parameter for PBuilder.build: extra_env, a mapping with extra
Bernhard Herzog <bh@intevation.de>
parents: 122
diff changeset
26 value = os.environ.get('TREEPKG_TEST')
68d829cac3ff New parameter for PBuilder.build: extra_env, a mapping with extra
Bernhard Herzog <bh@intevation.de>
parents: 122
diff changeset
27 if value:
68d829cac3ff New parameter for PBuilder.build: extra_env, a mapping with extra
Bernhard Herzog <bh@intevation.de>
parents: 122
diff changeset
28 open(value, 'w').close()
118
9d59ed0e3116 Add test/test_builder.py with tests for treepkg.builder
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
29 """
9d59ed0e3116 Add test/test_builder.py with tests for treepkg.builder
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
30
121
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
31 class PBuilderTests(unittest.TestCase, FileTestMixin):
118
9d59ed0e3116 Add test/test_builder.py with tests for treepkg.builder
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
32
9d59ed0e3116 Add test/test_builder.py with tests for treepkg.builder
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
33 def setUp(self):
9d59ed0e3116 Add test/test_builder.py with tests for treepkg.builder
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
34 self.dump_command_line = self.create_temp_file("dump_command_line.py",
9d59ed0e3116 Add test/test_builder.py with tests for treepkg.builder
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
35 dump_command_line_py)
9d59ed0e3116 Add test/test_builder.py with tests for treepkg.builder
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
36 self.command_line_file = self.temp_file_name("command_line")
9d59ed0e3116 Add test/test_builder.py with tests for treepkg.builder
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
37 self.root_command = [sys.executable, self.dump_command_line,
9d59ed0e3116 Add test/test_builder.py with tests for treepkg.builder
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
38 self.command_line_file]
9d59ed0e3116 Add test/test_builder.py with tests for treepkg.builder
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
39
9d59ed0e3116 Add test/test_builder.py with tests for treepkg.builder
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
40 def check_command_line(self, args):
195
e3ab8aca2b08 Make filesupport.py more PEP8 conformant. Rename method
Bernhard Herzog <bh@intevation.de>
parents: 186
diff changeset
41 self.check_file_contents(self.command_line_file, repr(args))
118
9d59ed0e3116 Add test/test_builder.py with tests for treepkg.builder
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
42
121
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
43
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
44 class TestPBuilder(PBuilderTests):
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
45
170
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
46 def test_init_pbuilder(self):
344
f06f707d9fda merged branches/scratchbox into trunk
Bjoern Ricks <bricks@intevation.de>
parents: 296
diff changeset
47 """Tests the PBuilder.init_builder method."""
185
e1c7cd896310 Rework test/filesupport.py so that test cases always use their own
Bernhard Herzog <bh@intevation.de>
parents: 183
diff changeset
48 basedir = self.create_temp_dir("pbuilder")
170
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
49 pbuilderrc = os.path.join(basedir, "pbuilderrc")
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
50 builder = PBuilder(pbuilderrc, self.root_command)
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
51 old_stdout = sys.stdout
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
52 sys.stdout = captured_stdout = StringIO.StringIO()
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
53 try:
344
f06f707d9fda merged branches/scratchbox into trunk
Bjoern Ricks <bricks@intevation.de>
parents: 296
diff changeset
54 builder.init_builder(distribution="etch",
170
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
55 mirrorsite="http://example.com/debian",
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
56 extramirrors=None)
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
57 finally:
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
58 sys.stdout = old_stdout
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
59
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
60 # check whether the necessary directories were created
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
61 missing = [dirname for dirname in ["base", "build", "result",
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
62 "aptcache", "extra-pkg"]
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
63 if not os.path.isdir(os.path.join(basedir, dirname))]
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
64 if missing:
344
f06f707d9fda merged branches/scratchbox into trunk
Bjoern Ricks <bricks@intevation.de>
parents: 296
diff changeset
65 self.fail("init_builder did not create these directories: %s"
170
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
66 % " ".join(missing))
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
67
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
68 # check the pbuilderrc. This test is a little too strict
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
69 # because it checks the exact contents of the file. Instread it
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
70 # should normalize the contents in some way and check that.
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
71 pbuilderrc_contents = (
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
72 "# This file was automatically generated by initpbuilder.py.\n"
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
73 "# for the possible settings see \"man pbuilderrc\"\n"
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
74 "\n"
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
75 "BASETGZ=%(basedir)s/base/base.tgz\n"
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
76 "BUILDPLACE=%(basedir)s/build\n"
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
77 "USEPROC=yes\n"
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
78 "USEDEVPTS=yes\n"
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
79 "BUILDRESULT=%(basedir)s/result\n"
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
80 "DISTRIBUTION=etch\n"
173
97435e92411a Introduce filenameproperties for the various directories in the PBuilder class
Bernhard Herzog <bh@intevation.de>
parents: 171
diff changeset
81 "APTCACHE=%(basedir)s/aptcache\n"
170
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
82 "APTCACHEHARDLINK=yes\n"
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
83 "REMOVEPACKAGES=lilo\n"
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
84 "MIRRORSITE=\"http://example.com/debian\"\n"
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
85 "OTHERMIRROR=\"deb file://%(basedir)s/extra-pkg ./\"\n"
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
86 "BINDMOUNTS=\"%(basedir)s/extra-pkg\"\n"
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
87 "PKGNAME_LOGFILE=yes\n" % locals())
195
e3ab8aca2b08 Make filesupport.py more PEP8 conformant. Rename method
Bernhard Herzog <bh@intevation.de>
parents: 186
diff changeset
88 self.check_file_contents(pbuilderrc, pbuilderrc_contents)
170
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
89
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
90 # The Packages file is empty for now.
195
e3ab8aca2b08 Make filesupport.py more PEP8 conformant. Rename method
Bernhard Herzog <bh@intevation.de>
parents: 186
diff changeset
91 self.check_file_contents(os.path.join(basedir, "extra-pkg", "Packages"),
e3ab8aca2b08 Make filesupport.py more PEP8 conformant. Rename method
Bernhard Herzog <bh@intevation.de>
parents: 186
diff changeset
92 "")
170
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
93 # check the text written to stdout. This test is a little too
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
94 # strict because it checks the exact output.
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
95 self.assertEquals(captured_stdout.getvalue(),
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
96 "creating directory: '%(basedir_repr)s/base'\n"
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
97 "creating directory: '%(basedir_repr)s/build'\n"
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
98 "creating directory: '%(basedir_repr)s/result'\n"
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
99 "creating directory: '%(basedir_repr)s/aptcache'\n"
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
100 "creating directory: '%(basedir_repr)s/extra-pkg'\n"
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
101 "creating pbuilderrc: '%(basedir_repr)s/pbuilderrc'\n"
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
102 "turning the extra-pkg dir into a debian archive\n"
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
103 "running pbuilder create\n"
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
104 % dict(basedir_repr=repr(basedir)[1:-1]))
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
105
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
106 def test_init_pbuilder_run_twice(self):
344
f06f707d9fda merged branches/scratchbox into trunk
Bjoern Ricks <bricks@intevation.de>
parents: 296
diff changeset
107 """Tests whether PBuilder.init_builder prints an error when run twice.
170
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
108 """
185
e1c7cd896310 Rework test/filesupport.py so that test cases always use their own
Bernhard Herzog <bh@intevation.de>
parents: 183
diff changeset
109 basedir = self.create_temp_dir("pbuilder")
170
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
110
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
111 # run it once
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
112 pbuilderrc = os.path.join(basedir, "pbuilderrc")
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
113 builder = PBuilder(pbuilderrc, self.root_command)
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
114 old_stdout = sys.stdout
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
115 sys.stdout = captured_stdout = StringIO.StringIO()
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
116 try:
344
f06f707d9fda merged branches/scratchbox into trunk
Bjoern Ricks <bricks@intevation.de>
parents: 296
diff changeset
117 builder.init_builder(distribution="etch",
170
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
118 mirrorsite="http://example.com/debian",
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
119 extramirrors=None)
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
120 finally:
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
121 sys.stdout = old_stdout
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
122
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
123 # running it again should not modify anything in the directory
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
124 # (which we don't check currently), it should print an error
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
125 # message and exit with exit code 1.
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
126 old_stderr = sys.stderr
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
127 sys.stderr = captured_stderr = StringIO.StringIO()
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
128 try:
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
129 try:
344
f06f707d9fda merged branches/scratchbox into trunk
Bjoern Ricks <bricks@intevation.de>
parents: 296
diff changeset
130 builder.init_builder(distribution="etch",
170
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
131 mirrorsite="http://example.com/debian",
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
132 extramirrors=None)
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
133 except SystemExit, exc:
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
134 self.assertEquals(exc.code, 1)
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
135 finally:
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
136 sys.stderr = old_stderr
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
137 self.assertEquals("pbuilderrc %r already exists.\n"
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
138 % os.path.join(basedir, "pbuilderrc"),
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
139 captured_stderr.getvalue())
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
140
178
b2fa3b0926d0 PBuilder: refactor the "pbuilder update" call into a separate method
Bernhard Herzog <bh@intevation.de>
parents: 176
diff changeset
141 def test_update(self):
b2fa3b0926d0 PBuilder: refactor the "pbuilder update" call into a separate method
Bernhard Herzog <bh@intevation.de>
parents: 176
diff changeset
142 """Tests the PBuilder.update method."""
b2fa3b0926d0 PBuilder: refactor the "pbuilder update" call into a separate method
Bernhard Herzog <bh@intevation.de>
parents: 176
diff changeset
143 builder = PBuilder("my_pbuilderrc", self.root_command)
b2fa3b0926d0 PBuilder: refactor the "pbuilder update" call into a separate method
Bernhard Herzog <bh@intevation.de>
parents: 176
diff changeset
144 builder.update()
b2fa3b0926d0 PBuilder: refactor the "pbuilder update" call into a separate method
Bernhard Herzog <bh@intevation.de>
parents: 176
diff changeset
145 self.check_command_line(['/usr/sbin/pbuilder', 'update',
b2fa3b0926d0 PBuilder: refactor the "pbuilder update" call into a separate method
Bernhard Herzog <bh@intevation.de>
parents: 176
diff changeset
146 '--configfile', 'my_pbuilderrc'])
170
bfcb2bbf9a52 Move the pbuilder initialization code from bin/initpbuilder.py to
Bernhard Herzog <bh@intevation.de>
parents: 126
diff changeset
147
118
9d59ed0e3116 Add test/test_builder.py with tests for treepkg.builder
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
148 def test_build(self):
9d59ed0e3116 Add test/test_builder.py with tests for treepkg.builder
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
149 """Tests the PBuilder.build method.
9d59ed0e3116 Add test/test_builder.py with tests for treepkg.builder
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
150 The test checks whether the build method creates the binary_dir
9d59ed0e3116 Add test/test_builder.py with tests for treepkg.builder
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
151 and then checks the arguments with which the root command is
9d59ed0e3116 Add test/test_builder.py with tests for treepkg.builder
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
152 called. The test is a little too strict because it expects a
9d59ed0e3116 Add test/test_builder.py with tests for treepkg.builder
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
153 specific order of the arguments even though the order of some of
9d59ed0e3116 Add test/test_builder.py with tests for treepkg.builder
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
154 the arguments doesn't matter.
9d59ed0e3116 Add test/test_builder.py with tests for treepkg.builder
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
155
9d59ed0e3116 Add test/test_builder.py with tests for treepkg.builder
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
156 A more thorough test of the build method is implicity done by
9d59ed0e3116 Add test/test_builder.py with tests for treepkg.builder
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
157 the packager tests.
9d59ed0e3116 Add test/test_builder.py with tests for treepkg.builder
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
158 """
9d59ed0e3116 Add test/test_builder.py with tests for treepkg.builder
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
159 binary_dir_name = self.temp_file_name("binary")
9d59ed0e3116 Add test/test_builder.py with tests for treepkg.builder
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
160 if os.path.exists(binary_dir_name):
9d59ed0e3116 Add test/test_builder.py with tests for treepkg.builder
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
161 os.rmdir(binary_dir_name)
9d59ed0e3116 Add test/test_builder.py with tests for treepkg.builder
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
162 # sanity check: the binary directory must not exist yet.
9d59ed0e3116 Add test/test_builder.py with tests for treepkg.builder
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
163 self.failIf(os.path.exists(binary_dir_name))
9d59ed0e3116 Add test/test_builder.py with tests for treepkg.builder
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
164
186
2622bf5ed5bd For log files, use a name under the test specific temp dir to avoid
Bernhard Herzog <bh@intevation.de>
parents: 185
diff changeset
165 logfilename = self.temp_file_name("the_logfile")
2622bf5ed5bd For log files, use a name under the test specific temp dir to avoid
Bernhard Herzog <bh@intevation.de>
parents: 185
diff changeset
166
118
9d59ed0e3116 Add test/test_builder.py with tests for treepkg.builder
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
167 builder = PBuilder("my_pbuilderrc", self.root_command)
186
2622bf5ed5bd For log files, use a name under the test specific temp dir to avoid
Bernhard Herzog <bh@intevation.de>
parents: 185
diff changeset
168 builder.build("my_dsc_file", binary_dir_name, logfilename)
118
9d59ed0e3116 Add test/test_builder.py with tests for treepkg.builder
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
169 self.check_command_line(['/usr/sbin/pbuilder', 'build',
9d59ed0e3116 Add test/test_builder.py with tests for treepkg.builder
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
170 '--configfile', 'my_pbuilderrc',
186
2622bf5ed5bd For log files, use a name under the test specific temp dir to avoid
Bernhard Herzog <bh@intevation.de>
parents: 185
diff changeset
171 '--logfile', logfilename,
118
9d59ed0e3116 Add test/test_builder.py with tests for treepkg.builder
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
172 '--buildresult', binary_dir_name,
171
c0ea6cbb0fd2 Add "--debbuildopts -b" to "pbuilder build" command line to stop
Bernhard Herzog <bh@intevation.de>
parents: 170
diff changeset
173 '--debbuildopts', '-b',
118
9d59ed0e3116 Add test/test_builder.py with tests for treepkg.builder
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
174 'my_dsc_file'])
9d59ed0e3116 Add test/test_builder.py with tests for treepkg.builder
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
175 self.failUnless(os.path.isdir(binary_dir_name))
119
92116333ef77 Add PBuilder.run_script method and associated tests. The run_script
Bernhard Herzog <bh@intevation.de>
parents: 118
diff changeset
176
122
6e34fc4ebe39 New arguments for the PBuilder.build method:
Bernhard Herzog <bh@intevation.de>
parents: 121
diff changeset
177 def test_build_with_bindmounts(self):
6e34fc4ebe39 New arguments for the PBuilder.build method:
Bernhard Herzog <bh@intevation.de>
parents: 121
diff changeset
178 """Tests the PBuilder.build method with the bindmounts parameter"""
6e34fc4ebe39 New arguments for the PBuilder.build method:
Bernhard Herzog <bh@intevation.de>
parents: 121
diff changeset
179 binary_dir_name = self.temp_file_name("binary")
6e34fc4ebe39 New arguments for the PBuilder.build method:
Bernhard Herzog <bh@intevation.de>
parents: 121
diff changeset
180 if os.path.exists(binary_dir_name):
6e34fc4ebe39 New arguments for the PBuilder.build method:
Bernhard Herzog <bh@intevation.de>
parents: 121
diff changeset
181 os.rmdir(binary_dir_name)
6e34fc4ebe39 New arguments for the PBuilder.build method:
Bernhard Herzog <bh@intevation.de>
parents: 121
diff changeset
182 # sanity check: the binary directory must not exist yet.
6e34fc4ebe39 New arguments for the PBuilder.build method:
Bernhard Herzog <bh@intevation.de>
parents: 121
diff changeset
183 self.failIf(os.path.exists(binary_dir_name))
6e34fc4ebe39 New arguments for the PBuilder.build method:
Bernhard Herzog <bh@intevation.de>
parents: 121
diff changeset
184
186
2622bf5ed5bd For log files, use a name under the test specific temp dir to avoid
Bernhard Herzog <bh@intevation.de>
parents: 185
diff changeset
185 logfilename = self.temp_file_name("the_logfile")
2622bf5ed5bd For log files, use a name under the test specific temp dir to avoid
Bernhard Herzog <bh@intevation.de>
parents: 185
diff changeset
186
122
6e34fc4ebe39 New arguments for the PBuilder.build method:
Bernhard Herzog <bh@intevation.de>
parents: 121
diff changeset
187 builder = PBuilder("my_pbuilderrc", self.root_command)
186
2622bf5ed5bd For log files, use a name under the test specific temp dir to avoid
Bernhard Herzog <bh@intevation.de>
parents: 185
diff changeset
188 builder.build("my_dsc_file", binary_dir_name, logfilename,
122
6e34fc4ebe39 New arguments for the PBuilder.build method:
Bernhard Herzog <bh@intevation.de>
parents: 121
diff changeset
189 bindmounts=["/home/builder/tracks",
6e34fc4ebe39 New arguments for the PBuilder.build method:
Bernhard Herzog <bh@intevation.de>
parents: 121
diff changeset
190 "/home/builder/pbuilder"])
6e34fc4ebe39 New arguments for the PBuilder.build method:
Bernhard Herzog <bh@intevation.de>
parents: 121
diff changeset
191 self.check_command_line(['/usr/sbin/pbuilder', 'build',
6e34fc4ebe39 New arguments for the PBuilder.build method:
Bernhard Herzog <bh@intevation.de>
parents: 121
diff changeset
192 '--configfile', 'my_pbuilderrc',
209
cbcd8f549ff7 Make logfile and binary_dir parameters of PBuilder.build optional.
Bernhard Herzog <bh@intevation.de>
parents: 195
diff changeset
193 '--logfile', logfilename,
cbcd8f549ff7 Make logfile and binary_dir parameters of PBuilder.build optional.
Bernhard Herzog <bh@intevation.de>
parents: 195
diff changeset
194 '--buildresult', binary_dir_name,
122
6e34fc4ebe39 New arguments for the PBuilder.build method:
Bernhard Herzog <bh@intevation.de>
parents: 121
diff changeset
195 '--bindmounts', "/home/builder/tracks",
6e34fc4ebe39 New arguments for the PBuilder.build method:
Bernhard Herzog <bh@intevation.de>
parents: 121
diff changeset
196 '--bindmounts', "/home/builder/pbuilder",
171
c0ea6cbb0fd2 Add "--debbuildopts -b" to "pbuilder build" command line to stop
Bernhard Herzog <bh@intevation.de>
parents: 170
diff changeset
197 '--debbuildopts', '-b',
122
6e34fc4ebe39 New arguments for the PBuilder.build method:
Bernhard Herzog <bh@intevation.de>
parents: 121
diff changeset
198 'my_dsc_file'])
6e34fc4ebe39 New arguments for the PBuilder.build method:
Bernhard Herzog <bh@intevation.de>
parents: 121
diff changeset
199 self.failUnless(os.path.isdir(binary_dir_name))
6e34fc4ebe39 New arguments for the PBuilder.build method:
Bernhard Herzog <bh@intevation.de>
parents: 121
diff changeset
200
6e34fc4ebe39 New arguments for the PBuilder.build method:
Bernhard Herzog <bh@intevation.de>
parents: 121
diff changeset
201 def test_build_with_extra_packages(self):
6e34fc4ebe39 New arguments for the PBuilder.build method:
Bernhard Herzog <bh@intevation.de>
parents: 121
diff changeset
202 """Tests the PBuilder.build method with the extra_packages parameter"""
6e34fc4ebe39 New arguments for the PBuilder.build method:
Bernhard Herzog <bh@intevation.de>
parents: 121
diff changeset
203 binary_dir_name = self.temp_file_name("binary")
6e34fc4ebe39 New arguments for the PBuilder.build method:
Bernhard Herzog <bh@intevation.de>
parents: 121
diff changeset
204 if os.path.exists(binary_dir_name):
6e34fc4ebe39 New arguments for the PBuilder.build method:
Bernhard Herzog <bh@intevation.de>
parents: 121
diff changeset
205 os.rmdir(binary_dir_name)
6e34fc4ebe39 New arguments for the PBuilder.build method:
Bernhard Herzog <bh@intevation.de>
parents: 121
diff changeset
206 # sanity check: the binary directory must not exist yet.
6e34fc4ebe39 New arguments for the PBuilder.build method:
Bernhard Herzog <bh@intevation.de>
parents: 121
diff changeset
207 self.failIf(os.path.exists(binary_dir_name))
6e34fc4ebe39 New arguments for the PBuilder.build method:
Bernhard Herzog <bh@intevation.de>
parents: 121
diff changeset
208
186
2622bf5ed5bd For log files, use a name under the test specific temp dir to avoid
Bernhard Herzog <bh@intevation.de>
parents: 185
diff changeset
209 logfilename = self.temp_file_name("the_logfile")
2622bf5ed5bd For log files, use a name under the test specific temp dir to avoid
Bernhard Herzog <bh@intevation.de>
parents: 185
diff changeset
210
122
6e34fc4ebe39 New arguments for the PBuilder.build method:
Bernhard Herzog <bh@intevation.de>
parents: 121
diff changeset
211 builder = PBuilder("my_pbuilderrc", self.root_command)
186
2622bf5ed5bd For log files, use a name under the test specific temp dir to avoid
Bernhard Herzog <bh@intevation.de>
parents: 185
diff changeset
212 builder.build("my_dsc_file", binary_dir_name, logfilename,
122
6e34fc4ebe39 New arguments for the PBuilder.build method:
Bernhard Herzog <bh@intevation.de>
parents: 121
diff changeset
213 extra_packages=["subversion", "texinfo"])
6e34fc4ebe39 New arguments for the PBuilder.build method:
Bernhard Herzog <bh@intevation.de>
parents: 121
diff changeset
214 self.check_command_line(['/usr/sbin/pbuilder', 'build',
6e34fc4ebe39 New arguments for the PBuilder.build method:
Bernhard Herzog <bh@intevation.de>
parents: 121
diff changeset
215 '--configfile', 'my_pbuilderrc',
209
cbcd8f549ff7 Make logfile and binary_dir parameters of PBuilder.build optional.
Bernhard Herzog <bh@intevation.de>
parents: 195
diff changeset
216 '--logfile', logfilename,
cbcd8f549ff7 Make logfile and binary_dir parameters of PBuilder.build optional.
Bernhard Herzog <bh@intevation.de>
parents: 195
diff changeset
217 '--buildresult', binary_dir_name,
122
6e34fc4ebe39 New arguments for the PBuilder.build method:
Bernhard Herzog <bh@intevation.de>
parents: 121
diff changeset
218 '--extrapackages', "subversion",
6e34fc4ebe39 New arguments for the PBuilder.build method:
Bernhard Herzog <bh@intevation.de>
parents: 121
diff changeset
219 '--extrapackages', "texinfo",
171
c0ea6cbb0fd2 Add "--debbuildopts -b" to "pbuilder build" command line to stop
Bernhard Herzog <bh@intevation.de>
parents: 170
diff changeset
220 '--debbuildopts', '-b',
122
6e34fc4ebe39 New arguments for the PBuilder.build method:
Bernhard Herzog <bh@intevation.de>
parents: 121
diff changeset
221 'my_dsc_file'])
6e34fc4ebe39 New arguments for the PBuilder.build method:
Bernhard Herzog <bh@intevation.de>
parents: 121
diff changeset
222 self.failUnless(os.path.isdir(binary_dir_name))
6e34fc4ebe39 New arguments for the PBuilder.build method:
Bernhard Herzog <bh@intevation.de>
parents: 121
diff changeset
223
126
68d829cac3ff New parameter for PBuilder.build: extra_env, a mapping with extra
Bernhard Herzog <bh@intevation.de>
parents: 122
diff changeset
224 def test_build_with_extra_env(self):
68d829cac3ff New parameter for PBuilder.build: extra_env, a mapping with extra
Bernhard Herzog <bh@intevation.de>
parents: 122
diff changeset
225 """Tests the PBuilder.build method with the extra_env parameter"""
68d829cac3ff New parameter for PBuilder.build: extra_env, a mapping with extra
Bernhard Herzog <bh@intevation.de>
parents: 122
diff changeset
226 binary_dir_name = self.temp_file_name("binary")
68d829cac3ff New parameter for PBuilder.build: extra_env, a mapping with extra
Bernhard Herzog <bh@intevation.de>
parents: 122
diff changeset
227 if os.path.exists(binary_dir_name):
68d829cac3ff New parameter for PBuilder.build: extra_env, a mapping with extra
Bernhard Herzog <bh@intevation.de>
parents: 122
diff changeset
228 os.rmdir(binary_dir_name)
185
e1c7cd896310 Rework test/filesupport.py so that test cases always use their own
Bernhard Herzog <bh@intevation.de>
parents: 183
diff changeset
229 env_test_file = self.temp_file_name("envtest")
126
68d829cac3ff New parameter for PBuilder.build: extra_env, a mapping with extra
Bernhard Herzog <bh@intevation.de>
parents: 122
diff changeset
230 # sanity check: the binary directory must not exist yet.
68d829cac3ff New parameter for PBuilder.build: extra_env, a mapping with extra
Bernhard Herzog <bh@intevation.de>
parents: 122
diff changeset
231 self.failIf(os.path.exists(binary_dir_name))
68d829cac3ff New parameter for PBuilder.build: extra_env, a mapping with extra
Bernhard Herzog <bh@intevation.de>
parents: 122
diff changeset
232 # sanity check: the environment variable TREEPKG_TEST must not
68d829cac3ff New parameter for PBuilder.build: extra_env, a mapping with extra
Bernhard Herzog <bh@intevation.de>
parents: 122
diff changeset
233 # be set yet
68d829cac3ff New parameter for PBuilder.build: extra_env, a mapping with extra
Bernhard Herzog <bh@intevation.de>
parents: 122
diff changeset
234 self.failIf("TREEPKG_TEST" in os.environ)
68d829cac3ff New parameter for PBuilder.build: extra_env, a mapping with extra
Bernhard Herzog <bh@intevation.de>
parents: 122
diff changeset
235
186
2622bf5ed5bd For log files, use a name under the test specific temp dir to avoid
Bernhard Herzog <bh@intevation.de>
parents: 185
diff changeset
236 logfilename = self.temp_file_name("the_logfile")
2622bf5ed5bd For log files, use a name under the test specific temp dir to avoid
Bernhard Herzog <bh@intevation.de>
parents: 185
diff changeset
237
126
68d829cac3ff New parameter for PBuilder.build: extra_env, a mapping with extra
Bernhard Herzog <bh@intevation.de>
parents: 122
diff changeset
238 builder = PBuilder("my_pbuilderrc", self.root_command)
186
2622bf5ed5bd For log files, use a name under the test specific temp dir to avoid
Bernhard Herzog <bh@intevation.de>
parents: 185
diff changeset
239 builder.build("my_dsc_file", binary_dir_name, logfilename,
126
68d829cac3ff New parameter for PBuilder.build: extra_env, a mapping with extra
Bernhard Herzog <bh@intevation.de>
parents: 122
diff changeset
240 extra_env=dict(TREEPKG_TEST=env_test_file))
68d829cac3ff New parameter for PBuilder.build: extra_env, a mapping with extra
Bernhard Herzog <bh@intevation.de>
parents: 122
diff changeset
241 self.check_command_line(['/usr/sbin/pbuilder', 'build',
68d829cac3ff New parameter for PBuilder.build: extra_env, a mapping with extra
Bernhard Herzog <bh@intevation.de>
parents: 122
diff changeset
242 '--configfile', 'my_pbuilderrc',
186
2622bf5ed5bd For log files, use a name under the test specific temp dir to avoid
Bernhard Herzog <bh@intevation.de>
parents: 185
diff changeset
243 '--logfile', logfilename,
126
68d829cac3ff New parameter for PBuilder.build: extra_env, a mapping with extra
Bernhard Herzog <bh@intevation.de>
parents: 122
diff changeset
244 '--buildresult', binary_dir_name,
171
c0ea6cbb0fd2 Add "--debbuildopts -b" to "pbuilder build" command line to stop
Bernhard Herzog <bh@intevation.de>
parents: 170
diff changeset
245 '--debbuildopts', '-b',
126
68d829cac3ff New parameter for PBuilder.build: extra_env, a mapping with extra
Bernhard Herzog <bh@intevation.de>
parents: 122
diff changeset
246 'my_dsc_file'])
68d829cac3ff New parameter for PBuilder.build: extra_env, a mapping with extra
Bernhard Herzog <bh@intevation.de>
parents: 122
diff changeset
247 self.failUnless(os.path.isdir(binary_dir_name))
68d829cac3ff New parameter for PBuilder.build: extra_env, a mapping with extra
Bernhard Herzog <bh@intevation.de>
parents: 122
diff changeset
248 self.failUnless(os.path.exists(env_test_file))
68d829cac3ff New parameter for PBuilder.build: extra_env, a mapping with extra
Bernhard Herzog <bh@intevation.de>
parents: 122
diff changeset
249
119
92116333ef77 Add PBuilder.run_script method and associated tests. The run_script
Bernhard Herzog <bh@intevation.de>
parents: 118
diff changeset
250 def test_run_script(self):
186
2622bf5ed5bd For log files, use a name under the test specific temp dir to avoid
Bernhard Herzog <bh@intevation.de>
parents: 185
diff changeset
251 logfilename = self.temp_file_name("the_logfile")
119
92116333ef77 Add PBuilder.run_script method and associated tests. The run_script
Bernhard Herzog <bh@intevation.de>
parents: 118
diff changeset
252 builder = PBuilder("my_pbuilderrc", self.root_command)
186
2622bf5ed5bd For log files, use a name under the test specific temp dir to avoid
Bernhard Herzog <bh@intevation.de>
parents: 185
diff changeset
253 builder.run_script(["my_script"], logfile=logfilename)
119
92116333ef77 Add PBuilder.run_script method and associated tests. The run_script
Bernhard Herzog <bh@intevation.de>
parents: 118
diff changeset
254 self.check_command_line(['/usr/sbin/pbuilder', 'execute',
92116333ef77 Add PBuilder.run_script method and associated tests. The run_script
Bernhard Herzog <bh@intevation.de>
parents: 118
diff changeset
255 '--configfile', 'my_pbuilderrc',
186
2622bf5ed5bd For log files, use a name under the test specific temp dir to avoid
Bernhard Herzog <bh@intevation.de>
parents: 185
diff changeset
256 '--logfile', logfilename, '--',
119
92116333ef77 Add PBuilder.run_script method and associated tests. The run_script
Bernhard Herzog <bh@intevation.de>
parents: 118
diff changeset
257 'my_script'])
92116333ef77 Add PBuilder.run_script method and associated tests. The run_script
Bernhard Herzog <bh@intevation.de>
parents: 118
diff changeset
258
181
81585486281b Extend the PBuilder.run_script method so that the script can be called
Bernhard Herzog <bh@intevation.de>
parents: 178
diff changeset
259 def test_run_script_with_arguments(self):
186
2622bf5ed5bd For log files, use a name under the test specific temp dir to avoid
Bernhard Herzog <bh@intevation.de>
parents: 185
diff changeset
260 logfilename = self.temp_file_name("the_logfile")
181
81585486281b Extend the PBuilder.run_script method so that the script can be called
Bernhard Herzog <bh@intevation.de>
parents: 178
diff changeset
261 builder = PBuilder("my_pbuilderrc", self.root_command)
186
2622bf5ed5bd For log files, use a name under the test specific temp dir to avoid
Bernhard Herzog <bh@intevation.de>
parents: 185
diff changeset
262 builder.run_script(["my_script", "--verbose"], logfile=logfilename)
181
81585486281b Extend the PBuilder.run_script method so that the script can be called
Bernhard Herzog <bh@intevation.de>
parents: 178
diff changeset
263 self.check_command_line(['/usr/sbin/pbuilder', 'execute',
81585486281b Extend the PBuilder.run_script method so that the script can be called
Bernhard Herzog <bh@intevation.de>
parents: 178
diff changeset
264 '--configfile', 'my_pbuilderrc',
186
2622bf5ed5bd For log files, use a name under the test specific temp dir to avoid
Bernhard Herzog <bh@intevation.de>
parents: 185
diff changeset
265 '--logfile', logfilename, '--',
181
81585486281b Extend the PBuilder.run_script method so that the script can be called
Bernhard Herzog <bh@intevation.de>
parents: 178
diff changeset
266 'my_script', '--verbose'])
81585486281b Extend the PBuilder.run_script method so that the script can be called
Bernhard Herzog <bh@intevation.de>
parents: 178
diff changeset
267
119
92116333ef77 Add PBuilder.run_script method and associated tests. The run_script
Bernhard Herzog <bh@intevation.de>
parents: 118
diff changeset
268 def test_run_script_with_bindmounts(self):
186
2622bf5ed5bd For log files, use a name under the test specific temp dir to avoid
Bernhard Herzog <bh@intevation.de>
parents: 185
diff changeset
269 logfilename = self.temp_file_name("the_logfile")
119
92116333ef77 Add PBuilder.run_script method and associated tests. The run_script
Bernhard Herzog <bh@intevation.de>
parents: 118
diff changeset
270 builder = PBuilder("my_pbuilderrc", self.root_command)
186
2622bf5ed5bd For log files, use a name under the test specific temp dir to avoid
Bernhard Herzog <bh@intevation.de>
parents: 185
diff changeset
271 builder.run_script(["my_script"], logfile=logfilename,
119
92116333ef77 Add PBuilder.run_script method and associated tests. The run_script
Bernhard Herzog <bh@intevation.de>
parents: 118
diff changeset
272 bindmounts=("/home/builder/foo",
92116333ef77 Add PBuilder.run_script method and associated tests. The run_script
Bernhard Herzog <bh@intevation.de>
parents: 118
diff changeset
273 "/home/builder/treepkg"))
92116333ef77 Add PBuilder.run_script method and associated tests. The run_script
Bernhard Herzog <bh@intevation.de>
parents: 118
diff changeset
274 self.check_command_line(['/usr/sbin/pbuilder', 'execute',
92116333ef77 Add PBuilder.run_script method and associated tests. The run_script
Bernhard Herzog <bh@intevation.de>
parents: 118
diff changeset
275 '--configfile', 'my_pbuilderrc',
186
2622bf5ed5bd For log files, use a name under the test specific temp dir to avoid
Bernhard Herzog <bh@intevation.de>
parents: 185
diff changeset
276 '--logfile', logfilename,
119
92116333ef77 Add PBuilder.run_script method and associated tests. The run_script
Bernhard Herzog <bh@intevation.de>
parents: 118
diff changeset
277 '--bindmounts', '/home/builder/foo',
92116333ef77 Add PBuilder.run_script method and associated tests. The run_script
Bernhard Herzog <bh@intevation.de>
parents: 118
diff changeset
278 '--bindmounts', '/home/builder/treepkg',
183
72e41b27f224 Add test case for the save_after_exec parameter and adapt the other
Bernhard Herzog <bh@intevation.de>
parents: 181
diff changeset
279 '--', 'my_script'])
72e41b27f224 Add test case for the save_after_exec parameter and adapt the other
Bernhard Herzog <bh@intevation.de>
parents: 181
diff changeset
280
72e41b27f224 Add test case for the save_after_exec parameter and adapt the other
Bernhard Herzog <bh@intevation.de>
parents: 181
diff changeset
281 def test_run_script_save_after_exec(self):
186
2622bf5ed5bd For log files, use a name under the test specific temp dir to avoid
Bernhard Herzog <bh@intevation.de>
parents: 185
diff changeset
282 logfilename = self.temp_file_name("the_logfile")
183
72e41b27f224 Add test case for the save_after_exec parameter and adapt the other
Bernhard Herzog <bh@intevation.de>
parents: 181
diff changeset
283 builder = PBuilder("my_pbuilderrc", self.root_command)
186
2622bf5ed5bd For log files, use a name under the test specific temp dir to avoid
Bernhard Herzog <bh@intevation.de>
parents: 185
diff changeset
284 builder.run_script(["my_script", "--verbose"], logfilename,
183
72e41b27f224 Add test case for the save_after_exec parameter and adapt the other
Bernhard Herzog <bh@intevation.de>
parents: 181
diff changeset
285 save_after_exec=True)
72e41b27f224 Add test case for the save_after_exec parameter and adapt the other
Bernhard Herzog <bh@intevation.de>
parents: 181
diff changeset
286 self.check_command_line(['/usr/sbin/pbuilder', 'execute',
72e41b27f224 Add test case for the save_after_exec parameter and adapt the other
Bernhard Herzog <bh@intevation.de>
parents: 181
diff changeset
287 '--configfile', 'my_pbuilderrc',
186
2622bf5ed5bd For log files, use a name under the test specific temp dir to avoid
Bernhard Herzog <bh@intevation.de>
parents: 185
diff changeset
288 '--logfile', logfilename,
183
72e41b27f224 Add test case for the save_after_exec parameter and adapt the other
Bernhard Herzog <bh@intevation.de>
parents: 181
diff changeset
289 '--save-after-exec', '--',
72e41b27f224 Add test case for the save_after_exec parameter and adapt the other
Bernhard Herzog <bh@intevation.de>
parents: 181
diff changeset
290 'my_script', '--verbose'])
121
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
291
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
292
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
293 class TestPBuilderWithBinaryPackage(PBuilderTests):
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
294
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
295 minimal_package = [
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
296 ("debian",
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
297 [("control", """\
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
298 Source: minimal
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
299 Section: utils
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
300 Priority: optional
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
301 Maintainer: Bernhard Herzog <bh@intevation.de>
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
302 Standards-Version: 3.7.2.2
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
303 Build-Depends: debhelper
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
304
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
305 Package: minimal
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
306 Architecture: any
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
307 Depends: ${shlibs:Depends}
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
308 Description: Minimal package for test purposes
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
309 """),
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
310 ("rules", 0755, """\
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
311 #!/usr/bin/make -f
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
312
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
313 build: build-stamp
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
314 build-stamp:
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
315 dh_testdir
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
316 touch build-stamp
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
317
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
318 clean:
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
319 dh_testdir
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
320 dh_testroot
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
321 rm -f build-stamp
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
322 dh_clean
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
323
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
324 # Build architecture-dependent files here.
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
325 binary-arch:
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
326 dh_testdir
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
327 dh_testroot
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
328 dh_installdocs README
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
329 dh_installchangelogs
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
330 dh_fixperms
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
331 dh_installdeb
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
332 dh_gencontrol
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
333 dh_md5sums
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
334 dh_builddeb
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
335
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
336 binary: binary-arch
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
337 .PHONY: build build-stamp clean binary-arch binary
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
338 """),
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
339 ("changelog", """\
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
340 minimal (1.0-1) unstable; urgency=low
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
341
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
342 * Newly packaged
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
343
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
344 -- Bernhard Herzog <bh@intevation.de> Wed, 21 May 2008 16:10:29 +0200
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
345 """)]),
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
346 ("README", """\
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
347 This is a minimal debian package for test purposes
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
348 """),
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
349 ]
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
350
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
351 pbuilder_files = [("pbuilderrc", ""),
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
352 ("extra-pkg", [])]
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
353
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
354 def setUp(self):
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
355 PBuilderTests.setUp(self)
185
e1c7cd896310 Rework test/filesupport.py so that test cases always use their own
Bernhard Herzog <bh@intevation.de>
parents: 183
diff changeset
356 self.temp_base_dir = self.create_temp_dir("pbuilder")
121
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
357 self.minimal_packge_dir = os.path.join(self.temp_base_dir,
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
358 "minimal-1.0")
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
359 self.create_files(self.minimal_packge_dir, self.minimal_package)
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
360 call(["dpkg-buildpackage", "-rfakeroot", "-b", "-uc"],
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
361 cwd=self.minimal_packge_dir, suppress_output=True)
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
362 self.minimal_package_deb = os.path.join(self.temp_base_dir,
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
363 "minimal_1.0-1_i386.deb")
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
364 self.pbuilder_basedir = os.path.join(self.temp_base_dir, "pbuilder")
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
365 self.create_files(self.pbuilder_basedir, self.pbuilder_files)
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
366 self.extra_pkg_dir = os.path.join(self.pbuilder_basedir, "extra-pkg")
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
367 self.pbuilderrc = os.path.join(self.pbuilder_basedir, "pbuilderrc")
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
368
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
369 def test_add_binaries_to_extra_pkg(self):
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
370 """Tests the PBuilder.add_binaries_to_extra_pkg method"""
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
371 builder = PBuilder(self.pbuilderrc, self.root_command)
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
372 # sanity check: the extra-pkg directory should be empty now
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
373 self.assertEquals(os.listdir(self.extra_pkg_dir), [])
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
374
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
375 builder.add_binaries_to_extra_pkg([self.minimal_package_deb])
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
376
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
377 self.assertEquals(sorted(os.listdir(self.extra_pkg_dir)),
296
ce7be2fb93ee Make it easy to install extra binaries into subdirectories of extra-pkg.
Bernhard Herzog <bh@intevation.de>
parents: 209
diff changeset
378 ["Packages", "Release", "auto"])
ce7be2fb93ee Make it easy to install extra binaries into subdirectories of extra-pkg.
Bernhard Herzog <bh@intevation.de>
parents: 209
diff changeset
379 self.assertEquals(sorted(os.listdir(os.path.join(self.extra_pkg_dir,
ce7be2fb93ee Make it easy to install extra binaries into subdirectories of extra-pkg.
Bernhard Herzog <bh@intevation.de>
parents: 209
diff changeset
380 "auto"))),
ce7be2fb93ee Make it easy to install extra binaries into subdirectories of extra-pkg.
Bernhard Herzog <bh@intevation.de>
parents: 209
diff changeset
381 ["minimal_1.0-1_i386.deb"])
121
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
382 self.check_command_line(['/usr/sbin/pbuilder', 'update',
890bb70920d6 Add the PBuilder.add_binaries_to_extra_pkg method. It allows automatic
Bernhard Herzog <bh@intevation.de>
parents: 119
diff changeset
383 '--configfile', self.pbuilderrc])
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)