Mercurial > treepkg
annotate test/test_packager.py @ 445:e049599fde1a
Default to treepkg.packager if no packager class is given
author | Andre Heinecke <aheinecke@intevation.de> |
---|---|
date | Mon, 09 Aug 2010 12:25:41 +0000 |
parents | fb92f3c1b238 |
children | ca95be9d033a |
rev | line source |
---|---|
222
01c043f13f13
Remove the unused PackageTrack.last_packaged_revision method and
Bernhard Herzog <bh@intevation.de>
parents:
190
diff
changeset
|
1 # Copyright (C) 2007, 2008, 2009 by Intevation GmbH |
84
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
2 # Authors: |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
3 # Bernhard Herzog <bh@intevation.de> |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
4 # |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
5 # This program is free software under the GPL (>=v2) |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
6 # Read the file COPYING coming with the software for details. |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
7 |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
8 """Tests for treepkg.packager""" |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
9 |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
10 import sys |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
11 import os |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
12 import unittest |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
13 |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
14 from treepkg.run import call |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
15 from treepkg.cmdexpand import cmdexpand |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
16 from treepkg.util import writefile |
128
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
17 from treepkg.packager import PackagerGroup, import_packager_module, \ |
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
18 CyclicDependencyError |
84
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
19 import treepkg.subversion as subversion |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
20 import treepkg |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
21 |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
22 from filesupport import FileTestMixin |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
23 |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
24 |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
25 def create_svn_repository(directory): |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
26 baseurl = "file://" + directory |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
27 call(cmdexpand("svnadmin create --fs-type fsfs $directory", |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
28 **locals())) |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
29 call(cmdexpand("svn mkdir -q -m 'create directory structure'" |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
30 " $baseurl/trunk", |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
31 **locals())) |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
32 return baseurl |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
33 |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
34 def add_svn_files(workingcopy, filedesc, commitmsg): |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
35 for name, contents in filedesc: |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
36 writefile(os.path.join(workingcopy, name), contents) |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
37 call(cmdexpand("svn add -q $name", **locals()), |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
38 cwd=workingcopy) |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
39 call(cmdexpand("svn commit -q -m $commitmsg", **locals()), |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
40 cwd=workingcopy) |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
41 |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
42 |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
43 class SourcePackager(treepkg.packager.SourcePackager): |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
44 |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
45 def do_package(self): |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
46 pkgbaseversion, pkgbasedir = self.export_sources() |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
47 |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
48 pkgbasename = self.pkg_basename + "_" + pkgbaseversion |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
49 origtargz = os.path.join(self.work_dir, |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
50 pkgbasename + ".orig.tar.gz") |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
51 self.create_tarball(origtargz, self.work_dir, |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
52 os.path.basename(pkgbasedir)) |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
53 |
334
4c047e979ff4
Updated tests to reflect that Subversion revisions are now handled
Andre Heinecke <aheinecke@intevation.de>
parents:
330
diff
changeset
|
54 changemsg = ("Update to SVN rev. %s" % (self.revision,)) |
84
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
55 self.copy_debian_directory(pkgbasedir, pkgbaseversion, |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
56 changemsg) |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
57 |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
58 self.create_source_package(pkgbasedir, origtargz) |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
59 self.move_source_package(pkgbasename) |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
60 |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
61 |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
62 class RevisionPackager(treepkg.packager.RevisionPackager): |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
63 |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
64 source_packager_cls = SourcePackager |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
65 |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
66 |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
67 class PackageTrack(treepkg.packager.PackageTrack): |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
68 |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
69 revision_packager_cls = RevisionPackager |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
70 |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
71 |
94
0c13a84a67dd
refactor the packager test cases to prepare for more tests
Bernhard Herzog <bh@intevation.de>
parents:
93
diff
changeset
|
72 class PackagerTest(unittest.TestCase, FileTestMixin): |
84
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
73 |
94
0c13a84a67dd
refactor the packager test cases to prepare for more tests
Bernhard Herzog <bh@intevation.de>
parents:
93
diff
changeset
|
74 revisions = [] |
84
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
75 |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
76 debian_files = [ |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
77 ("debian", |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
78 [("control", """\ |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
79 Source: testpkg |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
80 Priority: optional |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
81 Maintainer: TreePKG <treepkg@example.com> |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
82 Standards-Version: 3.7.2 |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
83 |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
84 Package: testpkg |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
85 Architecture: all |
116
093514306186
Cosemetic fix in test data
Bernhard Herzog <bh@intevation.de>
parents:
113
diff
changeset
|
86 Description: Test package for treepkg tests |
093514306186
Cosemetic fix in test data
Bernhard Herzog <bh@intevation.de>
parents:
113
diff
changeset
|
87 German (de) internationalized (i18n) files for KDE |
84
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
88 This package contains the German internationalized (i18n) files for |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
89 all KDE core applications. |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
90 """), |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
91 ("changelog", """\ |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
92 testpkg (0-0) unstable; urgency=low |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
93 |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
94 * Initial version |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
95 |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
96 -- TreePKG <treepkg@example.com> Thu, 8 Mar 2007 18:34:39 +0100 |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
97 """), |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
98 ("rules", "binary: echo binary")])] |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
99 |
94
0c13a84a67dd
refactor the packager test cases to prepare for more tests
Bernhard Herzog <bh@intevation.de>
parents:
93
diff
changeset
|
100 |
84
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
101 def setUp(self): |
185
e1c7cd896310
Rework test/filesupport.py so that test cases always use their own
Bernhard Herzog <bh@intevation.de>
parents:
128
diff
changeset
|
102 self.svndir = self.create_temp_dir("svn") |
e1c7cd896310
Rework test/filesupport.py so that test cases always use their own
Bernhard Herzog <bh@intevation.de>
parents:
128
diff
changeset
|
103 self.svnworkdir = self.create_temp_dir("svnwork") |
e1c7cd896310
Rework test/filesupport.py so that test cases always use their own
Bernhard Herzog <bh@intevation.de>
parents:
128
diff
changeset
|
104 self.trackdir = self.create_files("track", self.debian_files) |
94
0c13a84a67dd
refactor the packager test cases to prepare for more tests
Bernhard Herzog <bh@intevation.de>
parents:
93
diff
changeset
|
105 self.svn_url = create_svn_repository(self.svndir) + "/trunk" |
0c13a84a67dd
refactor the packager test cases to prepare for more tests
Bernhard Herzog <bh@intevation.de>
parents:
93
diff
changeset
|
106 subversion.checkout(self.svn_url, self.svnworkdir) |
95
8f1c72135ea6
Make PackagerTest more flexible to make it easier to add tests
Bernhard Herzog <bh@intevation.de>
parents:
94
diff
changeset
|
107 for message, files in self.revisions: |
8f1c72135ea6
Make PackagerTest more flexible to make it easier to add tests
Bernhard Herzog <bh@intevation.de>
parents:
94
diff
changeset
|
108 add_svn_files(self.svnworkdir, files, message) |
84
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
109 |
98
f7b9c7113c46
Make packaging a specific revision work even if newer revisions have already
Bernhard Herzog <bh@intevation.de>
parents:
97
diff
changeset
|
110 def runtest(self, debrevision, group_args=None, **extra_track_args): |
84
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
111 rootcmd = os.path.join(os.path.dirname(__file__), os.pardir, "test", |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
112 "mocksudopbuilder.py") |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
113 track = PackageTrack(name="testpkg", base_dir=self.trackdir, |
344
f06f707d9fda
merged branches/scratchbox into trunk
Bjoern Ricks <bricks@intevation.de>
parents:
334
diff
changeset
|
114 svn_url=self.svn_url, builderconfig="", |
84
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
115 root_cmd=[sys.executable, rootcmd], |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
116 deb_email="treepkg@example.com", |
93
73c67372c7f7
Make the prefix used in the debian revision number configurable.
Bernhard Herzog <bh@intevation.de>
parents:
91
diff
changeset
|
117 deb_fullname="treepkg tester", |
73c67372c7f7
Make the prefix used in the debian revision number configurable.
Bernhard Herzog <bh@intevation.de>
parents:
91
diff
changeset
|
118 **extra_track_args) |
98
f7b9c7113c46
Make packaging a specific revision work even if newer revisions have already
Bernhard Herzog <bh@intevation.de>
parents:
97
diff
changeset
|
119 |
f7b9c7113c46
Make packaging a specific revision work even if newer revisions have already
Bernhard Herzog <bh@intevation.de>
parents:
97
diff
changeset
|
120 if group_args is None: |
f7b9c7113c46
Make packaging a specific revision work even if newer revisions have already
Bernhard Herzog <bh@intevation.de>
parents:
97
diff
changeset
|
121 group_args = {} |
f7b9c7113c46
Make packaging a specific revision work even if newer revisions have already
Bernhard Herzog <bh@intevation.de>
parents:
97
diff
changeset
|
122 group = PackagerGroup([track], 1, **group_args) |
84
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
123 group.check_package_tracks() |
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
124 |
95
8f1c72135ea6
Make PackagerTest more flexible to make it easier to add tests
Bernhard Herzog <bh@intevation.de>
parents:
94
diff
changeset
|
125 # determine version that has been packaged. This assumes that |
8f1c72135ea6
Make PackagerTest more flexible to make it easier to add tests
Bernhard Herzog <bh@intevation.de>
parents:
94
diff
changeset
|
126 # check_package_tracks will leave the checkout in the revision |
8f1c72135ea6
Make PackagerTest more flexible to make it easier to add tests
Bernhard Herzog <bh@intevation.de>
parents:
94
diff
changeset
|
127 # that was actually packaged. |
98
f7b9c7113c46
Make packaging a specific revision work even if newer revisions have already
Bernhard Herzog <bh@intevation.de>
parents:
97
diff
changeset
|
128 version = track.last_changed_revision() |
95
8f1c72135ea6
Make PackagerTest more flexible to make it easier to add tests
Bernhard Herzog <bh@intevation.de>
parents:
94
diff
changeset
|
129 |
84
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
130 # Now check the source and binary package files |
334
4c047e979ff4
Updated tests to reflect that Subversion revisions are now handled
Andre Heinecke <aheinecke@intevation.de>
parents:
330
diff
changeset
|
131 pkgdir = os.path.join(self.trackdir, "pkg", "%s-0" % version) |
84
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
132 self.assertEquals(sorted(os.listdir(os.path.join(pkgdir, "src"))), |
95
8f1c72135ea6
Make PackagerTest more flexible to make it easier to add tests
Bernhard Herzog <bh@intevation.de>
parents:
94
diff
changeset
|
133 [name % locals() for name in |
334
4c047e979ff4
Updated tests to reflect that Subversion revisions are now handled
Andre Heinecke <aheinecke@intevation.de>
parents:
330
diff
changeset
|
134 ["testpkg_%(version)s-%(debrevision)s.diff.gz", |
4c047e979ff4
Updated tests to reflect that Subversion revisions are now handled
Andre Heinecke <aheinecke@intevation.de>
parents:
330
diff
changeset
|
135 "testpkg_%(version)s-%(debrevision)s.dsc", |
4c047e979ff4
Updated tests to reflect that Subversion revisions are now handled
Andre Heinecke <aheinecke@intevation.de>
parents:
330
diff
changeset
|
136 "testpkg_%(version)s.orig.tar.gz"]]) |
84
98a7d70746a9
Make BinaryPackager remove all files that do not belong to the binary
Bernhard Herzog <bh@intevation.de>
parents:
diff
changeset
|
137 self.assertEquals(sorted(os.listdir(os.path.join(pkgdir, "binary"))), |
95
8f1c72135ea6
Make PackagerTest more flexible to make it easier to add tests
Bernhard Herzog <bh@intevation.de>
parents:
94
diff
changeset
|
138 [name % locals() for name in |
334
4c047e979ff4
Updated tests to reflect that Subversion revisions are now handled
Andre Heinecke <aheinecke@intevation.de>
parents:
330
diff
changeset
|
139 ["testpkg_%(version)s-%(debrevision)s_all.deb", |
4c047e979ff4
Updated tests to reflect that Subversion revisions are now handled
Andre Heinecke <aheinecke@intevation.de>
parents:
330
diff
changeset
|
140 "testpkg_%(version)s-%(debrevision)s_i386.changes"]]) |
95
8f1c72135ea6
Make PackagerTest more flexible to make it easier to add tests
Bernhard Herzog <bh@intevation.de>
parents:
94
diff
changeset
|
141 |
8f1c72135ea6
Make PackagerTest more flexible to make it easier to add tests
Bernhard Herzog <bh@intevation.de>
parents:
94
diff
changeset
|
142 |
8f1c72135ea6
Make PackagerTest more flexible to make it easier to add tests
Bernhard Herzog <bh@intevation.de>
parents:
94
diff
changeset
|
143 class TestPackager(PackagerTest): |
8f1c72135ea6
Make PackagerTest more flexible to make it easier to add tests
Bernhard Herzog <bh@intevation.de>
parents:
94
diff
changeset
|
144 |
8f1c72135ea6
Make PackagerTest more flexible to make it easier to add tests
Bernhard Herzog <bh@intevation.de>
parents:
94
diff
changeset
|
145 revisions = [ |
8f1c72135ea6
Make PackagerTest more flexible to make it easier to add tests
Bernhard Herzog <bh@intevation.de>
parents:
94
diff
changeset
|
146 ("Initial Revision", |
8f1c72135ea6
Make PackagerTest more flexible to make it easier to add tests
Bernhard Herzog <bh@intevation.de>
parents:
94
diff
changeset
|
147 [("README", "and miles to go before I sleep")]), |
8f1c72135ea6
Make PackagerTest more flexible to make it easier to add tests
Bernhard Herzog <bh@intevation.de>
parents:
94
diff
changeset
|
148 ] |
93
73c67372c7f7
Make the prefix used in the debian revision number configurable.
Bernhard Herzog <bh@intevation.de>
parents:
91
diff
changeset
|
149 |
293
faeeac2c4c71
Replace debrevision_prefix with pkg_revision_template. Their meaning is
Bernhard Herzog <bh@intevation.de>
parents:
232
diff
changeset
|
150 def test_default_pkg_revision_template(self): |
93
73c67372c7f7
Make the prefix used in the debian revision number configurable.
Bernhard Herzog <bh@intevation.de>
parents:
91
diff
changeset
|
151 self.runtest("treepkg1") |
73c67372c7f7
Make the prefix used in the debian revision number configurable.
Bernhard Herzog <bh@intevation.de>
parents:
91
diff
changeset
|
152 |
293
faeeac2c4c71
Replace debrevision_prefix with pkg_revision_template. Their meaning is
Bernhard Herzog <bh@intevation.de>
parents:
232
diff
changeset
|
153 def test_custom_pkg_revision_template(self): |
334
4c047e979ff4
Updated tests to reflect that Subversion revisions are now handled
Andre Heinecke <aheinecke@intevation.de>
parents:
330
diff
changeset
|
154 self.runtest("kk1.2", pkg_revision_template="kk%(pkg_revision)s.2") |
85
31b0567df051
Make PackageTrack.get_revision_numbers return the revisions as a sorted
Bernhard Herzog <bh@intevation.de>
parents:
84
diff
changeset
|
155 |
98
f7b9c7113c46
Make packaging a specific revision work even if newer revisions have already
Bernhard Herzog <bh@intevation.de>
parents:
97
diff
changeset
|
156 |
f7b9c7113c46
Make packaging a specific revision work even if newer revisions have already
Bernhard Herzog <bh@intevation.de>
parents:
97
diff
changeset
|
157 class TestPackagerWithMultipleRevisions(PackagerTest): |
f7b9c7113c46
Make packaging a specific revision work even if newer revisions have already
Bernhard Herzog <bh@intevation.de>
parents:
97
diff
changeset
|
158 |
f7b9c7113c46
Make packaging a specific revision work even if newer revisions have already
Bernhard Herzog <bh@intevation.de>
parents:
97
diff
changeset
|
159 revisions = [ |
f7b9c7113c46
Make packaging a specific revision work even if newer revisions have already
Bernhard Herzog <bh@intevation.de>
parents:
97
diff
changeset
|
160 ("Initial Revision", |
f7b9c7113c46
Make packaging a specific revision work even if newer revisions have already
Bernhard Herzog <bh@intevation.de>
parents:
97
diff
changeset
|
161 [("README", "and miles to go before I sleep")]), |
f7b9c7113c46
Make packaging a specific revision work even if newer revisions have already
Bernhard Herzog <bh@intevation.de>
parents:
97
diff
changeset
|
162 ("Add some code", |
f7b9c7113c46
Make packaging a specific revision work even if newer revisions have already
Bernhard Herzog <bh@intevation.de>
parents:
97
diff
changeset
|
163 [("program.c", "int main(void) { return 0; }")]), |
f7b9c7113c46
Make packaging a specific revision work even if newer revisions have already
Bernhard Herzog <bh@intevation.de>
parents:
97
diff
changeset
|
164 ("Add some more code", |
f7b9c7113c46
Make packaging a specific revision work even if newer revisions have already
Bernhard Herzog <bh@intevation.de>
parents:
97
diff
changeset
|
165 [("another.c", "int main(void) { return 1; }")]), |
f7b9c7113c46
Make packaging a specific revision work even if newer revisions have already
Bernhard Herzog <bh@intevation.de>
parents:
97
diff
changeset
|
166 ] |
f7b9c7113c46
Make packaging a specific revision work even if newer revisions have already
Bernhard Herzog <bh@intevation.de>
parents:
97
diff
changeset
|
167 |
f7b9c7113c46
Make packaging a specific revision work even if newer revisions have already
Bernhard Herzog <bh@intevation.de>
parents:
97
diff
changeset
|
168 def test_packaging_specific_revision(self): |
f7b9c7113c46
Make packaging a specific revision work even if newer revisions have already
Bernhard Herzog <bh@intevation.de>
parents:
97
diff
changeset
|
169 # Package the newest revision and then package an older one. |
f7b9c7113c46
Make packaging a specific revision work even if newer revisions have already
Bernhard Herzog <bh@intevation.de>
parents:
97
diff
changeset
|
170 self.runtest("treepkg1") |
334
4c047e979ff4
Updated tests to reflect that Subversion revisions are now handled
Andre Heinecke <aheinecke@intevation.de>
parents:
330
diff
changeset
|
171 self.runtest("treepkg1", group_args=dict(revision='3')) |
98
f7b9c7113c46
Make packaging a specific revision work even if newer revisions have already
Bernhard Herzog <bh@intevation.de>
parents:
97
diff
changeset
|
172 |
f7b9c7113c46
Make packaging a specific revision work even if newer revisions have already
Bernhard Herzog <bh@intevation.de>
parents:
97
diff
changeset
|
173 |
91
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
174 class StoppingPackager(treepkg.packager.RevisionPackager): |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
175 |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
176 def package(self): |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
177 pass |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
178 |
223 | 179 |
91
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
180 class StoppingTrack(treepkg.packager.PackageTrack): |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
181 |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
182 def __init__(self, do_package, do_stop, instructions_file, name, trackdir): |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
183 super(StoppingTrack, self).__init__(name, trackdir, "", "", "", |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
184 "", "") |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
185 self.do_package = do_package |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
186 self.do_stop = do_stop |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
187 self.instructions_file = instructions_file |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
188 |
190
e83db4482aab
Add runtreepkg.py command line option --no-svn-update to inhibit updates
Bernhard Herzog <bh@intevation.de>
parents:
185
diff
changeset
|
189 def package_if_updated(self, revision, do_svn_update=True): |
91
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
190 if self.do_stop: |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
191 writefile(self.instructions_file, "stop") |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
192 if self.do_package: |
229
653a45adda50
Prepare for svn managed debian rules directories. So far, the directory
Bernhard Herzog <bh@intevation.de>
parents:
223
diff
changeset
|
193 return StoppingPackager(self, 1, 0) |
91
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
194 else: |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
195 return None |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
196 |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
197 |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
198 class TestPackageGroupStop(unittest.TestCase, FileTestMixin): |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
199 |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
200 def setUp(self): |
185
e1c7cd896310
Rework test/filesupport.py so that test cases always use their own
Bernhard Herzog <bh@intevation.de>
parents:
128
diff
changeset
|
201 self.trackdir = self.create_temp_dir("track") |
91
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
202 self.instructions_file = os.path.join(self.trackdir, "instructions") |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
203 |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
204 def group(self, do_package=True, do_stop=True): |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
205 return PackagerGroup([StoppingTrack(do_package, do_stop, |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
206 self.instructions_file, |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
207 "test", self.trackdir)], |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
208 1, instructions_file=self.instructions_file) |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
209 |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
210 def test_stop(self): |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
211 group = self.group(do_package=True, do_stop=True) |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
212 self.failUnless(group.check_package_tracks()) |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
213 |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
214 def test_no_stop(self): |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
215 group = self.group(do_package=True, do_stop=False) |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
216 self.failIf(group.check_package_tracks()) |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
217 |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
218 def test_instruction_removal(self): |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
219 # run once with stopping |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
220 group = self.group(do_package=True, do_stop=True) |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
221 self.failUnless(group.check_package_tracks()) |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
222 |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
223 # run again without stopping but using the same files. The |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
224 # instructions file should be removed automatically |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
225 group = self.group(do_package=True, do_stop=False) |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
226 self.failIf(group.check_package_tracks()) |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
227 |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
228 def test_stopping_without_packaging(self): |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
229 group = self.group(do_package=False, do_stop=True) |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
230 self.failUnless(group.check_package_tracks()) |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
231 |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
232 def test_stopping_between_checks(self): |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
233 group = self.group(do_package=False, do_stop=False) |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
234 # run check_package_tracks once |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
235 self.failIf(group.check_package_tracks()) |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
236 |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
237 # tell treepkg to stop |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
238 writefile(self.instructions_file, "stop") |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
239 |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
240 # check again. The check_package_tracks() may remove the |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
241 # instructions file but it must do so only the first time |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
242 self.failUnless(group.check_package_tracks()) |
3ed079a7174a
Implement a way to stop a running treepackager.
Bernhard Herzog <bh@intevation.de>
parents:
88
diff
changeset
|
243 |
85
31b0567df051
Make PackageTrack.get_revision_numbers return the revisions as a sorted
Bernhard Herzog <bh@intevation.de>
parents:
84
diff
changeset
|
244 |
31b0567df051
Make PackageTrack.get_revision_numbers return the revisions as a sorted
Bernhard Herzog <bh@intevation.de>
parents:
84
diff
changeset
|
245 class TestPackageTrack(unittest.TestCase, FileTestMixin): |
31b0567df051
Make PackageTrack.get_revision_numbers return the revisions as a sorted
Bernhard Herzog <bh@intevation.de>
parents:
84
diff
changeset
|
246 |
31b0567df051
Make PackageTrack.get_revision_numbers return the revisions as a sorted
Bernhard Herzog <bh@intevation.de>
parents:
84
diff
changeset
|
247 def test_get_revision_numbers(self): |
86
9bd92a3290e0
In TestPackageTrack, create the test files in the test_-methods so that
Bernhard Herzog <bh@intevation.de>
parents:
85
diff
changeset
|
248 # Note: The revisions in the pkg dir are not ordered so that we |
9bd92a3290e0
In TestPackageTrack, create the test files in the test_-methods so that
Bernhard Herzog <bh@intevation.de>
parents:
85
diff
changeset
|
249 # can check whether get_revision_numbers returns a sorted list |
9bd92a3290e0
In TestPackageTrack, create the test files in the test_-methods so that
Bernhard Herzog <bh@intevation.de>
parents:
85
diff
changeset
|
250 # of revisions |
185
e1c7cd896310
Rework test/filesupport.py so that test cases always use their own
Bernhard Herzog <bh@intevation.de>
parents:
128
diff
changeset
|
251 trackdir = self.create_files("track", |
e1c7cd896310
Rework test/filesupport.py so that test cases always use their own
Bernhard Herzog <bh@intevation.de>
parents:
128
diff
changeset
|
252 [("pkg", |
229
653a45adda50
Prepare for svn managed debian rules directories. So far, the directory
Bernhard Herzog <bh@intevation.de>
parents:
223
diff
changeset
|
253 [("704195-0", |
185
e1c7cd896310
Rework test/filesupport.py so that test cases always use their own
Bernhard Herzog <bh@intevation.de>
parents:
128
diff
changeset
|
254 [("status", ""), |
e1c7cd896310
Rework test/filesupport.py so that test cases always use their own
Bernhard Herzog <bh@intevation.de>
parents:
128
diff
changeset
|
255 ("src", []), |
e1c7cd896310
Rework test/filesupport.py so that test cases always use their own
Bernhard Herzog <bh@intevation.de>
parents:
128
diff
changeset
|
256 ("binary", [])]), |
229
653a45adda50
Prepare for svn managed debian rules directories. So far, the directory
Bernhard Herzog <bh@intevation.de>
parents:
223
diff
changeset
|
257 ("702432-2", |
185
e1c7cd896310
Rework test/filesupport.py so that test cases always use their own
Bernhard Herzog <bh@intevation.de>
parents:
128
diff
changeset
|
258 [("status", ""), |
e1c7cd896310
Rework test/filesupport.py so that test cases always use their own
Bernhard Herzog <bh@intevation.de>
parents:
128
diff
changeset
|
259 ("src", []), |
e1c7cd896310
Rework test/filesupport.py so that test cases always use their own
Bernhard Herzog <bh@intevation.de>
parents:
128
diff
changeset
|
260 ("binary", [])])])]) |
e1c7cd896310
Rework test/filesupport.py so that test cases always use their own
Bernhard Herzog <bh@intevation.de>
parents:
128
diff
changeset
|
261 track = PackageTrack("testtrack", trackdir, "", "", "", "", "") |
229
653a45adda50
Prepare for svn managed debian rules directories. So far, the directory
Bernhard Herzog <bh@intevation.de>
parents:
223
diff
changeset
|
262 self.assertEquals(track.get_revision_numbers(), |
330
24db9223488b
Test updated to reflect that rules_rev is now also handled as string
Andre Heinecke <aheinecke@intevation.de>
parents:
326
diff
changeset
|
263 [("702432", "2"), ("704195", "0")]) |
87
08d8ffd40f27
add some tests for the PackageTrack.last_packaged_revision() method
Bernhard Herzog <bh@intevation.de>
parents:
86
diff
changeset
|
264 |
88
3ae54f99db26
Add methods RevisionPackager.list_source_files and
Bernhard Herzog <bh@intevation.de>
parents:
87
diff
changeset
|
265 |
367
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
266 class TestSourcePackager(unittest.TestCase, FileTestMixin): |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
267 |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
268 def test_debian_source_format_3_0_1(self): |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
269 trackdir = self.create_files("track", |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
270 [("debian", |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
271 [("source", |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
272 [("format", ("3.0 (quilt)"))] |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
273 )] |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
274 ), |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
275 ("pkg", |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
276 [("704195-0", |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
277 [("status", |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
278 ("TreePackagerStatus 0.0\n" |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
279 "status: binary_package_created\n" |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
280 "start: 2007-09-10 17:16:48\n" |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
281 "stop: 2007-09-11 00:07:36\n")), |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
282 ("src", []), |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
283 ("binary", []) |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
284 ] |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
285 )] |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
286 )] |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
287 ) |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
288 track = PackageTrack("testtrack", trackdir, "", "", "", "", "") |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
289 revpkg = RevisionPackager(track, 704195, 0) |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
290 srcpkg = SourcePackager(revpkg) |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
291 |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
292 pkgbasedir = trackdir |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
293 format = srcpkg.get_debian_source_format(pkgbasedir) |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
294 self.assertEqual("3.0 (quilt)", format) |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
295 |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
296 def test_debian_source_format_3_0_2(self): |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
297 trackdir = self.create_files("track", |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
298 [("debian", |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
299 [("source", |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
300 [("format", ("3.0 (quilt)\nabc"))] |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
301 )] |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
302 ), |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
303 ("pkg", |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
304 [("704195-0", |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
305 [("status", |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
306 ("TreePackagerStatus 0.0\n" |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
307 "status: binary_package_created\n" |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
308 "start: 2007-09-10 17:16:48\n" |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
309 "stop: 2007-09-11 00:07:36\n")), |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
310 ("src", []), |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
311 ("binary", []) |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
312 ] |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
313 )] |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
314 )] |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
315 ) |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
316 track = PackageTrack("testtrack", trackdir, "", "", "", "", "") |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
317 revpkg = RevisionPackager(track, 704195, 0) |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
318 srcpkg = SourcePackager(revpkg) |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
319 |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
320 pkgbasedir = trackdir |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
321 format = srcpkg.get_debian_source_format(pkgbasedir) |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
322 self.assertEqual("3.0 (quilt)", format) |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
323 |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
324 def test_debian_source_format_1_0_1(self): |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
325 trackdir = self.create_files("track", |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
326 [("debian", |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
327 [("source","")] |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
328 ), |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
329 ("pkg", |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
330 [("704195-0", |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
331 [("status", |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
332 ("TreePackagerStatus 0.0\n" |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
333 "status: binary_package_created\n" |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
334 "start: 2007-09-10 17:16:48\n" |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
335 "stop: 2007-09-11 00:07:36\n")), |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
336 ("src", []), |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
337 ("binary", []) |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
338 ] |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
339 )] |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
340 )] |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
341 ) |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
342 track = PackageTrack("testtrack", trackdir, "", "", "", "", "") |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
343 revpkg = RevisionPackager(track, 704195, 0) |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
344 srcpkg = SourcePackager(revpkg) |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
345 |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
346 pkgbasedir = trackdir |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
347 format = srcpkg.get_debian_source_format(pkgbasedir) |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
348 self.assertEqual("1.0", format) |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
349 |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
350 def test_debian_source_format_1_0_2(self): |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
351 trackdir = self.create_files("track", |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
352 [("debian", ""), |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
353 ("pkg", |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
354 [("704195-0", |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
355 [("status", |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
356 ("TreePackagerStatus 0.0\n" |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
357 "status: binary_package_created\n" |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
358 "start: 2007-09-10 17:16:48\n" |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
359 "stop: 2007-09-11 00:07:36\n")), |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
360 ("src", []), |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
361 ("binary", []) |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
362 ] |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
363 )] |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
364 )] |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
365 ) |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
366 track = PackageTrack("testtrack", trackdir, "", "", "", "", "") |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
367 revpkg = RevisionPackager(track, 704195, 0) |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
368 srcpkg = SourcePackager(revpkg) |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
369 |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
370 pkgbasedir = trackdir |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
371 format = srcpkg.get_debian_source_format(pkgbasedir) |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
372 self.assertEqual("1.0", format) |
fb92f3c1b238
treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
Bjoern Ricks <bricks@intevation.de>
parents:
344
diff
changeset
|
373 |
88
3ae54f99db26
Add methods RevisionPackager.list_source_files and
Bernhard Herzog <bh@intevation.de>
parents:
87
diff
changeset
|
374 class TestRevisionPackager(unittest.TestCase, FileTestMixin): |
3ae54f99db26
Add methods RevisionPackager.list_source_files and
Bernhard Herzog <bh@intevation.de>
parents:
87
diff
changeset
|
375 |
3ae54f99db26
Add methods RevisionPackager.list_source_files and
Bernhard Herzog <bh@intevation.de>
parents:
87
diff
changeset
|
376 def test_list_source_files(self): |
185
e1c7cd896310
Rework test/filesupport.py so that test cases always use their own
Bernhard Herzog <bh@intevation.de>
parents:
128
diff
changeset
|
377 trackdir = self.create_files("track", |
e1c7cd896310
Rework test/filesupport.py so that test cases always use their own
Bernhard Herzog <bh@intevation.de>
parents:
128
diff
changeset
|
378 [("pkg", |
229
653a45adda50
Prepare for svn managed debian rules directories. So far, the directory
Bernhard Herzog <bh@intevation.de>
parents:
223
diff
changeset
|
379 [("704195-31", |
185
e1c7cd896310
Rework test/filesupport.py so that test cases always use their own
Bernhard Herzog <bh@intevation.de>
parents:
128
diff
changeset
|
380 [("status", |
e1c7cd896310
Rework test/filesupport.py so that test cases always use their own
Bernhard Herzog <bh@intevation.de>
parents:
128
diff
changeset
|
381 ("TreePackagerStatus 0.0\n" |
e1c7cd896310
Rework test/filesupport.py so that test cases always use their own
Bernhard Herzog <bh@intevation.de>
parents:
128
diff
changeset
|
382 "status: binary_package_created\n" |
e1c7cd896310
Rework test/filesupport.py so that test cases always use their own
Bernhard Herzog <bh@intevation.de>
parents:
128
diff
changeset
|
383 "start: 2007-09-10 17:16:48\n" |
e1c7cd896310
Rework test/filesupport.py so that test cases always use their own
Bernhard Herzog <bh@intevation.de>
parents:
128
diff
changeset
|
384 "stop: 2007-09-11 00:07:36\n")), |
e1c7cd896310
Rework test/filesupport.py so that test cases always use their own
Bernhard Herzog <bh@intevation.de>
parents:
128
diff
changeset
|
385 ("src", [("test_1.0.orig.tar.gz", ""), |
e1c7cd896310
Rework test/filesupport.py so that test cases always use their own
Bernhard Herzog <bh@intevation.de>
parents:
128
diff
changeset
|
386 ("test_1.0-1.diff.gz", ""), |
e1c7cd896310
Rework test/filesupport.py so that test cases always use their own
Bernhard Herzog <bh@intevation.de>
parents:
128
diff
changeset
|
387 ("test_1.0-1.dsc", "")]), |
e1c7cd896310
Rework test/filesupport.py so that test cases always use their own
Bernhard Herzog <bh@intevation.de>
parents:
128
diff
changeset
|
388 ("binary", [])]), |
e1c7cd896310
Rework test/filesupport.py so that test cases always use their own
Bernhard Herzog <bh@intevation.de>
parents:
128
diff
changeset
|
389 ("702432-1", |
e1c7cd896310
Rework test/filesupport.py so that test cases always use their own
Bernhard Herzog <bh@intevation.de>
parents:
128
diff
changeset
|
390 [("status", ""), |
e1c7cd896310
Rework test/filesupport.py so that test cases always use their own
Bernhard Herzog <bh@intevation.de>
parents:
128
diff
changeset
|
391 ("src", []), |
e1c7cd896310
Rework test/filesupport.py so that test cases always use their own
Bernhard Herzog <bh@intevation.de>
parents:
128
diff
changeset
|
392 ("binary", [])])])]) |
e1c7cd896310
Rework test/filesupport.py so that test cases always use their own
Bernhard Herzog <bh@intevation.de>
parents:
128
diff
changeset
|
393 track = PackageTrack("testtrack", trackdir, "", "", "", "", "") |
229
653a45adda50
Prepare for svn managed debian rules directories. So far, the directory
Bernhard Herzog <bh@intevation.de>
parents:
223
diff
changeset
|
394 revpkg = RevisionPackager(track, 704195, 31) |
653a45adda50
Prepare for svn managed debian rules directories. So far, the directory
Bernhard Herzog <bh@intevation.de>
parents:
223
diff
changeset
|
395 srcdir = os.path.join(trackdir, "pkg", "704195-31", "src") |
88
3ae54f99db26
Add methods RevisionPackager.list_source_files and
Bernhard Herzog <bh@intevation.de>
parents:
87
diff
changeset
|
396 self.assertEquals(revpkg.list_source_files(), |
3ae54f99db26
Add methods RevisionPackager.list_source_files and
Bernhard Herzog <bh@intevation.de>
parents:
87
diff
changeset
|
397 [os.path.join(srcdir, filename) |
3ae54f99db26
Add methods RevisionPackager.list_source_files and
Bernhard Herzog <bh@intevation.de>
parents:
87
diff
changeset
|
398 for filename in ["test_1.0-1.diff.gz", |
3ae54f99db26
Add methods RevisionPackager.list_source_files and
Bernhard Herzog <bh@intevation.de>
parents:
87
diff
changeset
|
399 "test_1.0-1.dsc", |
3ae54f99db26
Add methods RevisionPackager.list_source_files and
Bernhard Herzog <bh@intevation.de>
parents:
87
diff
changeset
|
400 "test_1.0.orig.tar.gz"]]) |
3ae54f99db26
Add methods RevisionPackager.list_source_files and
Bernhard Herzog <bh@intevation.de>
parents:
87
diff
changeset
|
401 |
3ae54f99db26
Add methods RevisionPackager.list_source_files and
Bernhard Herzog <bh@intevation.de>
parents:
87
diff
changeset
|
402 def test_list_binary_files(self): |
185
e1c7cd896310
Rework test/filesupport.py so that test cases always use their own
Bernhard Herzog <bh@intevation.de>
parents:
128
diff
changeset
|
403 trackdir = self.create_files("track", |
e1c7cd896310
Rework test/filesupport.py so that test cases always use their own
Bernhard Herzog <bh@intevation.de>
parents:
128
diff
changeset
|
404 [("pkg", |
e1c7cd896310
Rework test/filesupport.py so that test cases always use their own
Bernhard Herzog <bh@intevation.de>
parents:
128
diff
changeset
|
405 [("704195-1", |
e1c7cd896310
Rework test/filesupport.py so that test cases always use their own
Bernhard Herzog <bh@intevation.de>
parents:
128
diff
changeset
|
406 [("status", |
e1c7cd896310
Rework test/filesupport.py so that test cases always use their own
Bernhard Herzog <bh@intevation.de>
parents:
128
diff
changeset
|
407 ("TreePackagerStatus 0.0\n" |
e1c7cd896310
Rework test/filesupport.py so that test cases always use their own
Bernhard Herzog <bh@intevation.de>
parents:
128
diff
changeset
|
408 "status: binary_package_created\n" |
e1c7cd896310
Rework test/filesupport.py so that test cases always use their own
Bernhard Herzog <bh@intevation.de>
parents:
128
diff
changeset
|
409 "start: 2007-09-10 17:16:48\n" |
e1c7cd896310
Rework test/filesupport.py so that test cases always use their own
Bernhard Herzog <bh@intevation.de>
parents:
128
diff
changeset
|
410 "stop: 2007-09-11 00:07:36\n")), |
e1c7cd896310
Rework test/filesupport.py so that test cases always use their own
Bernhard Herzog <bh@intevation.de>
parents:
128
diff
changeset
|
411 ("src", []), |
e1c7cd896310
Rework test/filesupport.py so that test cases always use their own
Bernhard Herzog <bh@intevation.de>
parents:
128
diff
changeset
|
412 ("binary", |
e1c7cd896310
Rework test/filesupport.py so that test cases always use their own
Bernhard Herzog <bh@intevation.de>
parents:
128
diff
changeset
|
413 [("test_1.0-1_i386.deb", ""), |
e1c7cd896310
Rework test/filesupport.py so that test cases always use their own
Bernhard Herzog <bh@intevation.de>
parents:
128
diff
changeset
|
414 ("test_1.0-1_i386.changes", "")])]), |
e1c7cd896310
Rework test/filesupport.py so that test cases always use their own
Bernhard Herzog <bh@intevation.de>
parents:
128
diff
changeset
|
415 ("702432-1", |
e1c7cd896310
Rework test/filesupport.py so that test cases always use their own
Bernhard Herzog <bh@intevation.de>
parents:
128
diff
changeset
|
416 [("status", ""), |
e1c7cd896310
Rework test/filesupport.py so that test cases always use their own
Bernhard Herzog <bh@intevation.de>
parents:
128
diff
changeset
|
417 ("src", []), |
e1c7cd896310
Rework test/filesupport.py so that test cases always use their own
Bernhard Herzog <bh@intevation.de>
parents:
128
diff
changeset
|
418 ("binary", [])])])]) |
e1c7cd896310
Rework test/filesupport.py so that test cases always use their own
Bernhard Herzog <bh@intevation.de>
parents:
128
diff
changeset
|
419 track = PackageTrack("testtrack", trackdir, "", "", "", "", "") |
229
653a45adda50
Prepare for svn managed debian rules directories. So far, the directory
Bernhard Herzog <bh@intevation.de>
parents:
223
diff
changeset
|
420 revpkg = RevisionPackager(track, 704195, 1) |
185
e1c7cd896310
Rework test/filesupport.py so that test cases always use their own
Bernhard Herzog <bh@intevation.de>
parents:
128
diff
changeset
|
421 bindir = os.path.join(trackdir, "pkg", "704195-1", "binary") |
88
3ae54f99db26
Add methods RevisionPackager.list_source_files and
Bernhard Herzog <bh@intevation.de>
parents:
87
diff
changeset
|
422 self.assertEquals(revpkg.list_binary_files(), |
117
4bb029560721
Fix variable name in testcase
Bernhard Herzog <bh@intevation.de>
parents:
116
diff
changeset
|
423 [os.path.join(bindir, filename) |
88
3ae54f99db26
Add methods RevisionPackager.list_source_files and
Bernhard Herzog <bh@intevation.de>
parents:
87
diff
changeset
|
424 for filename in ["test_1.0-1_i386.changes", |
3ae54f99db26
Add methods RevisionPackager.list_source_files and
Bernhard Herzog <bh@intevation.de>
parents:
87
diff
changeset
|
425 "test_1.0-1_i386.deb"]]) |
113
312949e7628d
Add a smarter way to load the packager modules: Add the function
Bernhard Herzog <bh@intevation.de>
parents:
98
diff
changeset
|
426 |
312949e7628d
Add a smarter way to load the packager modules: Add the function
Bernhard Herzog <bh@intevation.de>
parents:
98
diff
changeset
|
427 |
312949e7628d
Add a smarter way to load the packager modules: Add the function
Bernhard Herzog <bh@intevation.de>
parents:
98
diff
changeset
|
428 class TestImportPackagerModule(unittest.TestCase, FileTestMixin): |
312949e7628d
Add a smarter way to load the packager modules: Add the function
Bernhard Herzog <bh@intevation.de>
parents:
98
diff
changeset
|
429 |
312949e7628d
Add a smarter way to load the packager modules: Add the function
Bernhard Herzog <bh@intevation.de>
parents:
98
diff
changeset
|
430 files = [("treepkg_importtest", |
312949e7628d
Add a smarter way to load the packager modules: Add the function
Bernhard Herzog <bh@intevation.de>
parents:
98
diff
changeset
|
431 [("__init__.py", ""), |
312949e7628d
Add a smarter way to load the packager modules: Add the function
Bernhard Herzog <bh@intevation.de>
parents:
98
diff
changeset
|
432 ("withtrack.py", "\n".join(["class PackageTrack:", |
312949e7628d
Add a smarter way to load the packager modules: Add the function
Bernhard Herzog <bh@intevation.de>
parents:
98
diff
changeset
|
433 " pass", |
312949e7628d
Add a smarter way to load the packager modules: Add the function
Bernhard Herzog <bh@intevation.de>
parents:
98
diff
changeset
|
434 ""])), |
125
34e08d52956e
Make the import_packager_module function more flexible. The modules may
Bernhard Herzog <bh@intevation.de>
parents:
117
diff
changeset
|
435 ("srconly.py", "\n".join(["class SourcePackager:", |
34e08d52956e
Make the import_packager_module function more flexible. The modules may
Bernhard Herzog <bh@intevation.de>
parents:
117
diff
changeset
|
436 " pass", |
34e08d52956e
Make the import_packager_module function more flexible. The modules may
Bernhard Herzog <bh@intevation.de>
parents:
117
diff
changeset
|
437 ""])), |
34e08d52956e
Make the import_packager_module function more flexible. The modules may
Bernhard Herzog <bh@intevation.de>
parents:
117
diff
changeset
|
438 ("srcandbin.py", "\n".join(["class SourcePackager:", |
34e08d52956e
Make the import_packager_module function more flexible. The modules may
Bernhard Herzog <bh@intevation.de>
parents:
117
diff
changeset
|
439 " pass", |
34e08d52956e
Make the import_packager_module function more flexible. The modules may
Bernhard Herzog <bh@intevation.de>
parents:
117
diff
changeset
|
440 "class BinaryPackager:", |
34e08d52956e
Make the import_packager_module function more flexible. The modules may
Bernhard Herzog <bh@intevation.de>
parents:
117
diff
changeset
|
441 " pass", |
34e08d52956e
Make the import_packager_module function more flexible. The modules may
Bernhard Herzog <bh@intevation.de>
parents:
117
diff
changeset
|
442 ""])), |
34e08d52956e
Make the import_packager_module function more flexible. The modules may
Bernhard Herzog <bh@intevation.de>
parents:
117
diff
changeset
|
443 ("revonly.py", "\n".join(["class RevisionPackager:", |
113
312949e7628d
Add a smarter way to load the packager modules: Add the function
Bernhard Herzog <bh@intevation.de>
parents:
98
diff
changeset
|
444 " pass", |
312949e7628d
Add a smarter way to load the packager modules: Add the function
Bernhard Herzog <bh@intevation.de>
parents:
98
diff
changeset
|
445 ""]))])] |
312949e7628d
Add a smarter way to load the packager modules: Add the function
Bernhard Herzog <bh@intevation.de>
parents:
98
diff
changeset
|
446 |
312949e7628d
Add a smarter way to load the packager modules: Add the function
Bernhard Herzog <bh@intevation.de>
parents:
98
diff
changeset
|
447 def setUp(self): |
185
e1c7cd896310
Rework test/filesupport.py so that test cases always use their own
Bernhard Herzog <bh@intevation.de>
parents:
128
diff
changeset
|
448 self.directory = self.create_files("a_module", self.files) |
113
312949e7628d
Add a smarter way to load the packager modules: Add the function
Bernhard Herzog <bh@intevation.de>
parents:
98
diff
changeset
|
449 self.old_path = sys.path |
312949e7628d
Add a smarter way to load the packager modules: Add the function
Bernhard Herzog <bh@intevation.de>
parents:
98
diff
changeset
|
450 sys.path = [self.directory] + sys.path |
312949e7628d
Add a smarter way to load the packager modules: Add the function
Bernhard Herzog <bh@intevation.de>
parents:
98
diff
changeset
|
451 |
312949e7628d
Add a smarter way to load the packager modules: Add the function
Bernhard Herzog <bh@intevation.de>
parents:
98
diff
changeset
|
452 def tearDown(self): |
312949e7628d
Add a smarter way to load the packager modules: Add the function
Bernhard Herzog <bh@intevation.de>
parents:
98
diff
changeset
|
453 sys.path = self.old_path |
312949e7628d
Add a smarter way to load the packager modules: Add the function
Bernhard Herzog <bh@intevation.de>
parents:
98
diff
changeset
|
454 |
125
34e08d52956e
Make the import_packager_module function more flexible. The modules may
Bernhard Herzog <bh@intevation.de>
parents:
117
diff
changeset
|
455 def check_class_modules(self, module, classmodules): |
34e08d52956e
Make the import_packager_module function more flexible. The modules may
Bernhard Herzog <bh@intevation.de>
parents:
117
diff
changeset
|
456 self.assertEquals(classmodules, |
34e08d52956e
Make the import_packager_module function more flexible. The modules may
Bernhard Herzog <bh@intevation.de>
parents:
117
diff
changeset
|
457 [(item[0], |
34e08d52956e
Make the import_packager_module function more flexible. The modules may
Bernhard Herzog <bh@intevation.de>
parents:
117
diff
changeset
|
458 sys.modules[getattr(module, item[0]).__module__]) |
34e08d52956e
Make the import_packager_module function more flexible. The modules may
Bernhard Herzog <bh@intevation.de>
parents:
117
diff
changeset
|
459 for item in classmodules]) |
34e08d52956e
Make the import_packager_module function more flexible. The modules may
Bernhard Herzog <bh@intevation.de>
parents:
117
diff
changeset
|
460 |
113
312949e7628d
Add a smarter way to load the packager modules: Add the function
Bernhard Herzog <bh@intevation.de>
parents:
98
diff
changeset
|
461 def test_import_with_track(self): |
312949e7628d
Add a smarter way to load the packager modules: Add the function
Bernhard Herzog <bh@intevation.de>
parents:
98
diff
changeset
|
462 module = import_packager_module("treepkg_importtest.withtrack") |
125
34e08d52956e
Make the import_packager_module function more flexible. The modules may
Bernhard Herzog <bh@intevation.de>
parents:
117
diff
changeset
|
463 self.check_class_modules(module, [("PackageTrack", module)]) |
113
312949e7628d
Add a smarter way to load the packager modules: Add the function
Bernhard Herzog <bh@intevation.de>
parents:
98
diff
changeset
|
464 |
125
34e08d52956e
Make the import_packager_module function more flexible. The modules may
Bernhard Herzog <bh@intevation.de>
parents:
117
diff
changeset
|
465 def test_import_with_source_packager(self): |
34e08d52956e
Make the import_packager_module function more flexible. The modules may
Bernhard Herzog <bh@intevation.de>
parents:
117
diff
changeset
|
466 module = import_packager_module("treepkg_importtest.srconly") |
34e08d52956e
Make the import_packager_module function more flexible. The modules may
Bernhard Herzog <bh@intevation.de>
parents:
117
diff
changeset
|
467 self.check_class_modules(module, [("PackageTrack", treepkg.packager), |
34e08d52956e
Make the import_packager_module function more flexible. The modules may
Bernhard Herzog <bh@intevation.de>
parents:
117
diff
changeset
|
468 ("SourcePackager", module),]) |
34e08d52956e
Make the import_packager_module function more flexible. The modules may
Bernhard Herzog <bh@intevation.de>
parents:
117
diff
changeset
|
469 |
34e08d52956e
Make the import_packager_module function more flexible. The modules may
Bernhard Herzog <bh@intevation.de>
parents:
117
diff
changeset
|
470 def test_import_with_source_and_binary_packager(self): |
34e08d52956e
Make the import_packager_module function more flexible. The modules may
Bernhard Herzog <bh@intevation.de>
parents:
117
diff
changeset
|
471 module = import_packager_module("treepkg_importtest.srcandbin") |
34e08d52956e
Make the import_packager_module function more flexible. The modules may
Bernhard Herzog <bh@intevation.de>
parents:
117
diff
changeset
|
472 self.check_class_modules(module, [("PackageTrack", treepkg.packager), |
34e08d52956e
Make the import_packager_module function more flexible. The modules may
Bernhard Herzog <bh@intevation.de>
parents:
117
diff
changeset
|
473 ("RevisionPackager", |
34e08d52956e
Make the import_packager_module function more flexible. The modules may
Bernhard Herzog <bh@intevation.de>
parents:
117
diff
changeset
|
474 treepkg.packager), |
34e08d52956e
Make the import_packager_module function more flexible. The modules may
Bernhard Herzog <bh@intevation.de>
parents:
117
diff
changeset
|
475 ("SourcePackager", module), |
34e08d52956e
Make the import_packager_module function more flexible. The modules may
Bernhard Herzog <bh@intevation.de>
parents:
117
diff
changeset
|
476 ("BinaryPackager", module),]) |
34e08d52956e
Make the import_packager_module function more flexible. The modules may
Bernhard Herzog <bh@intevation.de>
parents:
117
diff
changeset
|
477 self.assertEquals(module.PackageTrack.revision_packager_cls, |
34e08d52956e
Make the import_packager_module function more flexible. The modules may
Bernhard Herzog <bh@intevation.de>
parents:
117
diff
changeset
|
478 module.RevisionPackager) |
34e08d52956e
Make the import_packager_module function more flexible. The modules may
Bernhard Herzog <bh@intevation.de>
parents:
117
diff
changeset
|
479 self.assertEquals(module.RevisionPackager.source_packager_cls, |
34e08d52956e
Make the import_packager_module function more flexible. The modules may
Bernhard Herzog <bh@intevation.de>
parents:
117
diff
changeset
|
480 module.SourcePackager) |
34e08d52956e
Make the import_packager_module function more flexible. The modules may
Bernhard Herzog <bh@intevation.de>
parents:
117
diff
changeset
|
481 self.assertEquals(module.RevisionPackager.binary_packager_cls, |
34e08d52956e
Make the import_packager_module function more flexible. The modules may
Bernhard Herzog <bh@intevation.de>
parents:
117
diff
changeset
|
482 module.BinaryPackager) |
34e08d52956e
Make the import_packager_module function more flexible. The modules may
Bernhard Herzog <bh@intevation.de>
parents:
117
diff
changeset
|
483 |
34e08d52956e
Make the import_packager_module function more flexible. The modules may
Bernhard Herzog <bh@intevation.de>
parents:
117
diff
changeset
|
484 def test_import_with_revision_packager(self): |
34e08d52956e
Make the import_packager_module function more flexible. The modules may
Bernhard Herzog <bh@intevation.de>
parents:
117
diff
changeset
|
485 module = import_packager_module("treepkg_importtest.revonly") |
34e08d52956e
Make the import_packager_module function more flexible. The modules may
Bernhard Herzog <bh@intevation.de>
parents:
117
diff
changeset
|
486 self.check_class_modules(module, [("PackageTrack", treepkg.packager), |
34e08d52956e
Make the import_packager_module function more flexible. The modules may
Bernhard Herzog <bh@intevation.de>
parents:
117
diff
changeset
|
487 ("RevisionPackager", module)]) |
34e08d52956e
Make the import_packager_module function more flexible. The modules may
Bernhard Herzog <bh@intevation.de>
parents:
117
diff
changeset
|
488 |
34e08d52956e
Make the import_packager_module function more flexible. The modules may
Bernhard Herzog <bh@intevation.de>
parents:
117
diff
changeset
|
489 self.assertEquals(module.PackageTrack.revision_packager_cls, |
34e08d52956e
Make the import_packager_module function more flexible. The modules may
Bernhard Herzog <bh@intevation.de>
parents:
117
diff
changeset
|
490 module.RevisionPackager) |
128
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
491 |
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
492 |
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
493 class PackageTrackWithDependencies(treepkg.packager.PackageTrack): |
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
494 |
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
495 def __init__(self, name, handle_dependencies, requires, provides): |
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
496 defaults = dict(base_dir="/home/builder/tracks/" + name, |
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
497 svn_url="svn://example.com", |
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
498 root_cmd=["false"], |
344
f06f707d9fda
merged branches/scratchbox into trunk
Bjoern Ricks <bricks@intevation.de>
parents:
334
diff
changeset
|
499 builderconfig="/home/builder/pbuilderrc", |
128
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
500 deb_email="treepkg@example.com", deb_fullname="treepkg", |
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
501 handle_dependencies=handle_dependencies) |
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
502 super(PackageTrackWithDependencies, |
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
503 self).__init__(name, **defaults) |
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
504 self.dependencies = (set(requires.split()), set(provides.split())) |
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
505 |
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
506 def determine_dependencies(self): |
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
507 pass |
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
508 |
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
509 |
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
510 class TestPackageDependencies(unittest.TestCase): |
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
511 |
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
512 def test_track_order(self): |
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
513 P = PackageTrackWithDependencies |
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
514 tracks = [P("library", True, "base-dev", "library library-dev"), |
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
515 P("other", False, "cdbs base-dev", "other"), |
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
516 P("base", True, "", "base base-dev"), |
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
517 P("program", True, "library-dev libc", "program program-doc"), |
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
518 ] |
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
519 group = PackagerGroup(tracks, 3600) |
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
520 sorted_tracks = group.get_package_tracks() |
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
521 track_indices = dict([(track.name, index) for index, track in |
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
522 enumerate(sorted_tracks)]) |
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
523 def check_order(track1, track2): |
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
524 self.failUnless(track_indices[track1] < track_indices[track2]) |
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
525 |
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
526 check_order("base", "library") |
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
527 check_order("library", "program") |
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
528 check_order("base", "program") |
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
529 |
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
530 # sanity check whether other is still there. It doesn't matter |
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
531 # where |
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
532 self.failUnless("other" in track_indices) |
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
533 |
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
534 def test_track_order_cycle(self): |
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
535 P = PackageTrackWithDependencies |
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
536 tracks = [P("library", True, "base-dev", "library library-dev"), |
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
537 P("cycle", True, "program", "cycle"), |
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
538 P("other", False, "cdbs base-dev", "other"), |
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
539 P("base", True, "cycle", "base base-dev"), |
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
540 P("program", True, "library-dev libc", "program program-doc"), |
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
541 ] |
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
542 try: |
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
543 group = PackagerGroup(tracks, 3600) |
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
544 sorted_tracks = group.get_package_tracks() |
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
545 except CyclicDependencyError, exc: |
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
546 pass |
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
547 else: |
5155b4f9443d
Add basic dependency handling to PackageTrack and PackagerGroup.
Bernhard Herzog <bh@intevation.de>
parents:
125
diff
changeset
|
548 self.fail("PackagerGroup did not detect cyclic dependencies") |