Mercurial > treepkg
annotate test/test_builder.py @ 440:383d23c6bfde
Merged revisions 346-386 via svnmerge from
svn+ssh://svn.wald.intevation.org/treepkg/branches/treepkg-status
........
r346 | bricks | 2010-07-07 17:40:48 +0200 (Mi, 07 Jul 2010) | 2 lines
added classed for treepkg status xml generation
........
r347 | bricks | 2010-07-08 12:07:39 +0200 (Do, 08 Jul 2010) | 10 lines
renamed new status dir to info because of a naming conflict with status.py
let the user specify a treepkg name in the config
the name is propagated to PackagerGroup
[treepkg]
name: <treepkgname>
becomes:
pg = PackagerGroup(...)
pg.name
........
r348 | bricks | 2010-07-08 15:25:07 +0200 (Do, 08 Jul 2010) | 3 lines
moved test file to test main dir
fixed missing : after def statement
........
r349 | bricks | 2010-07-08 17:59:52 +0200 (Do, 08 Jul 2010) | 2 lines
added treepkg_dir andd tracks_dir attributes to PackageGroup
........
r350 | bricks | 2010-07-08 18:00:32 +0200 (Do, 08 Jul 2010) | 2 lines
changed <millpath> to <trackspath>
........
r351 | bricks | 2010-07-08 18:08:39 +0200 (Do, 08 Jul 2010) | 2 lines
check if config file exists to get usefull error output
........
r352 | bricks | 2010-07-08 18:11:13 +0200 (Do, 08 Jul 2010) | 2 lines
write first info about tracks
........
r353 | bricks | 2010-07-09 12:20:49 +0200 (Fr, 09 Jul 2010) | 2 lines
get all log files
........
r354 | bricks | 2010-07-09 14:42:42 +0200 (Fr, 09 Jul 2010) | 2 lines
added md5sum function
........
r355 | bricks | 2010-07-09 15:15:15 +0200 (Fr, 09 Jul 2010) | 4 lines
implemented nearly all info
only arch and os info are missing
........
r356 | bricks | 2010-07-09 16:19:17 +0200 (Fr, 09 Jul 2010) | 2 lines
Bugfix: source was not defined
........
r357 | bricks | 2010-07-09 16:44:52 +0200 (Fr, 09 Jul 2010) | 3 lines
fixed some typos
added missing add_checksum methond
........
r358 | bricks | 2010-07-09 17:06:15 +0200 (Fr, 09 Jul 2010) | 2 lines
fixed status line for revision
........
r359 | bricks | 2010-07-12 14:10:34 +0200 (Mo, 12 Jul 2010) | 2 lines
let the user specify num revisions that should be shown in the info
........
r360 | bricks | 2010-07-12 14:21:39 +0200 (Mo, 12 Jul 2010) | 2 lines
missed in last commit
........
r361 | bricks | 2010-07-12 17:06:22 +0200 (Mo, 12 Jul 2010) | 2 lines
add os config statement
........
r362 | bricks | 2010-07-12 17:47:42 +0200 (Mo, 12 Jul 2010) | 3 lines
moved packages and logs to revision tag
implemented os and arch info
........
r363 | bricks | 2010-07-13 14:23:28 +0200 (Di, 13 Jul 2010) | 2 lines
updated test readconfig for os config variable
........
r364 | bricks | 2010-07-13 14:24:14 +0200 (Di, 13 Jul 2010) | 2 lines
moved common publish functions to a seperate module
........
r365 | bricks | 2010-07-13 16:26:11 +0200 (Di, 13 Jul 2010) | 2 lines
moved arch info to each package info
........
r366 | bricks | 2010-07-13 18:46:17 +0200 (Di, 13 Jul 2010) | 2 lines
inital checkin for new publishpackages processing
........
r367 | bricks | 2010-07-21 17:52:15 +0200 (Mi, 21 Jul 2010) | 2 lines
implemented parsing from xml string
........
r368 | bricks | 2010-07-22 12:17:42 +0200 (Do, 22 Jul 2010) | 2 lines
copy binary-all packages in all binary-xyz dirs
........
r369 | bricks | 2010-07-22 12:26:40 +0200 (Do, 22 Jul 2010) | 2 lines
fixed small bugs
........
r370 | bricks | 2010-07-22 13:02:36 +0200 (Do, 22 Jul 2010) | 2 lines
added a new root element which is called TreepkgRoot for Treepkg Info classes
........
r371 | bricks | 2010-07-22 13:09:52 +0200 (Do, 22 Jul 2010) | 3 lines
fixed some small issues
remember: run pychecker BEFORE the commit
........
r372 | bricks | 2010-07-22 18:01:43 +0200 (Do, 22 Jul 2010) | 2 lines
improved publishdebianpackages and fixed a lot of bugs in the xml info parsing part
........
r373 | bricks | 2010-07-23 18:40:38 +0200 (Fr, 23 Jul 2010) | 2 lines
implemented CacheDb to store copied Packages from build host
........
r374 | bricks | 2010-07-26 10:28:48 +0200 (Mo, 26 Jul 2010) | 2 lines
moved data handling in publishdebianpackages into seperate module
........
r375 | bricks | 2010-07-26 11:42:07 +0200 (Mo, 26 Jul 2010) | 2 lines
fixed some typos
........
r376 | bricks | 2010-07-26 12:12:40 +0200 (Mo, 26 Jul 2010) | 2 lines
first version of incremental copying debian packages to cachedir
........
r377 | bricks | 2010-07-26 14:58:50 +0200 (Mo, 26 Jul 2010) | 2 lines
incremental copying only changed debian packages
........
r378 | bricks | 2010-07-26 15:39:10 +0200 (Mo, 26 Jul 2010) | 3 lines
use md5 instead of hashlib module
(md5 is deprecated in favour of hashlib in python 2.5)
........
r379 | bricks | 2010-07-26 15:46:19 +0200 (Mo, 26 Jul 2010) | 2 lines
make treepkg compatible to python 2.4
........
r380 | bricks | 2010-07-26 15:50:49 +0200 (Mo, 26 Jul 2010) | 2 lines
fixed last commit (db instead of sqlite3)
........
r381 | bricks | 2010-07-27 10:54:15 +0200 (Di, 27 Jul 2010) | 2 lines
fixed wrong import statement
........
r382 | bricks | 2010-07-27 10:54:34 +0200 (Di, 27 Jul 2010) | 2 lines
removed unnecessary debug output
........
r383 | bricks | 2010-07-27 18:28:22 +0200 (Di, 27 Jul 2010) | 2 lines
check if upload hook is empty
........
r384 | bricks | 2010-07-28 09:35:21 +0200 (Mi, 28 Jul 2010) | 2 lines
run rsync only an arch dirs that are present in the current treepkg
........
r385 | bricks | 2010-07-28 09:35:54 +0200 (Mi, 28 Jul 2010) | 2 lines
add helper tool to list content of a cache db
........
r386 | bricks | 2010-07-28 10:33:48 +0200 (Mi, 28 Jul 2010) | 3 lines
fixed a typo
regex fails if option is empty
........
author | Bjoern Ricks <bricks@intevation.de> |
---|---|
date | Fri, 06 Aug 2010 13:28:47 +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]) |