Mercurial > treepkg
annotate test/test_builder.py @ 557:9824e409388b
Refactor git branching
If a checkout is already available and the branch is changed in
the config git command would always fail because it doesn't know
the branch to track. Therefore always check if the branch is
locally available and if not checkout the remote branch
author | Bjoern Ricks <bricks@intevation.de> |
---|---|
date | Fri, 02 Sep 2011 08:45:28 +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]) |