[Pkg-bazaar-commits] ./bzr-builddeb/trunk.old r231: Use dpkg-source to build the source packages for testing.

James Westby jw+debian at jameswestby.net
Wed Dec 10 08:32:46 UTC 2008


------------------------------------------------------------
revno: 231
committer: James Westby <jw+debian at jameswestby.net>
branch nick: import
timestamp: Tue 2008-06-10 17:08:25 +0100
message:
  Use dpkg-source to build the source packages for testing.
modified:
  tests/test_import_dsc.py
-------------- next part --------------
=== modified file 'tests/test_import_dsc.py'
--- a/tests/test_import_dsc.py	2008-06-10 13:13:04 +0000
+++ b/tests/test_import_dsc.py	2008-06-10 16:08:25 +0000
@@ -20,7 +20,9 @@
 
 import gzip
 import os
+import select
 import shutil
+import subprocess
 import sys
 import tarfile
 
@@ -1966,7 +1968,9 @@
         builder = SourcePackageBuilder(name, version)
         builder.add_upstream_file("README", "Hi\n")
         builder.add_upstream_file("BUGS")
-        builder.build_orig()
+        builder.add_default_changelog()
+        builder.add_default_control()
+        builder.build()
         self.db1.import_upstream(builder.orig_name(), version,
                 self.fake_md5_1)
         tree = self.up_tree1
@@ -1981,20 +1985,24 @@
 
     def test_import_upstream_on_another(self):
         version1 = Version("0.1-1")
-        version2 = Version("0.1-2")
+        version2 = Version("0.2-1")
         name = "package"
         builder = SourcePackageBuilder(name, version1)
         builder.add_upstream_file("README", "Hi\n")
         builder.add_upstream_file("BUGS")
         builder.add_upstream_file("COPYING")
-        builder.build_orig()
+        builder.add_default_changelog()
+        builder.add_default_control()
+        builder.build()
         self.db1.import_upstream(builder.orig_name(), version1,
                 self.fake_md5_1)
         builder = SourcePackageBuilder(name, version2)
         builder.add_upstream_file("README", "Now even better\n")
         builder.add_upstream_file("BUGS")
         builder.add_upstream_file("NEWS")
-        builder.build_orig()
+        builder.add_default_changelog()
+        builder.add_default_control()
+        builder.build()
         self.db1.import_upstream(builder.orig_name(), version2,
                 self.fake_md5_2)
         tree = self.up_tree1
@@ -2024,15 +2032,16 @@
         cl = Changelog()
         cl.new_block(package="package", version=version1,
                 distributions="unstable", urgency="low",
-                author="Maint <maint at maint.org",
+                author="Maint <maint at maint.org>",
                 date="Wed, 19 Mar 2008 21:27:37 +0000")
         cl.add_change("  * foo")
         cl.new_block(package="package", version=version2,
                 distributions="experimental", urgency="low",
-                author="Maint <maint at maint.org",
+                author="Maint <maint at maint.org>",
                 date="Wed, 19 Mar 2008 21:27:37 +0000")
         cl.add_change("  * foo")
         builder.add_debian_file("debian/changelog", str(cl))
+        builder.add_default_control()
         builder.build()
         self.db2.import_package(builder.dsc_name())
         self.assertEqual(len(self.up_tree2.branch.revision_history()), 2)
@@ -2044,11 +2053,12 @@
         cl = Changelog()
         cl.new_block(package="package", version=version1,
                 distributions="unstable", urgency="low",
-                author="Maint <maint at maint.org",
+                author="Maint <maint at maint.org>",
                 date="Wed, 19 Mar 2008 21:27:37 +0000")
         cl.add_change("  * foo")
         builder.add_upstream_file("README", "foo")
         builder.add_debian_file("debian/changelog", str(cl))
+        builder.add_default_control()
         builder.build()
         self.db1.import_package(builder.dsc_name())
         self.assertEqual(len(self.up_tree1.branch.revision_history()), 1)
@@ -2061,7 +2071,7 @@
         cl = Changelog()
         cl.new_block(package="package", version=version1,
                 distributions="unstable", urgency="low",
-                author="Maint <maint at maint.org",
+                author="Maint <maint at maint.org>",
                 date="Wed, 19 Mar 2008 21:27:37 +0000")
         cl.add_change("  * foo")
         builder.add_upstream_file("README", "foo")
@@ -2069,11 +2079,12 @@
         builder.add_upstream_file("NEWS")
         builder.add_debian_file("debian/changelog", str(cl))
         builder.add_debian_file("COPYING", "Don't do it\n")
+        builder.add_default_control()
         builder.build()
         self.db1.import_package(builder.dsc_name())
         cl.new_block(package="package", version=version2,
                 distributions="unstable", urgency="low",
-                author="Maint <maint at maint.org",
+                author="Maint <maint at maint.org>",
                 date="Wed, 19 Mar 2008 21:27:37 +0000")
         cl.add_change("  * foo")
         builder = SourcePackageBuilder("package", version2)
@@ -2082,6 +2093,7 @@
         builder.add_upstream_file("COPYING", "Please do\n")
         builder.add_upstream_file("src.c")
         builder.add_debian_file("debian/changelog", str(cl))
+        builder.add_default_control()
         builder.build()
         self.db1.import_package(builder.dsc_name())
         rh = self.tree1.branch.revision_history()
@@ -2104,40 +2116,44 @@
                 added=["COPYING", "src.c"], removed=["NEWS"],
                 modified=["README"])
         self.check_changes(rev_tree1.changes_from(up_rev_tree1),
-                added=["debian/", "debian/changelog", "COPYING"])
+                added=["debian/", "debian/changelog", "COPYING",
+                "debian/control"])
         self.check_changes(rev_tree2.changes_from(rev_tree1),
                 modified=["debian/changelog", "COPYING", "README"],
                 added=["src.c"], removed=["NEWS"])
         self.check_changes(rev_tree2.changes_from(up_rev_tree2),
-                added=["debian/", "debian/changelog"])
+                added=["debian/", "debian/changelog", "debian/control"])
         self.check_changes(up_rev_tree2.changes_from(rev_tree1),
                 added=["src.c"],
-                removed=["NEWS", "debian/", "debian/changelog"],
+                removed=["NEWS", "debian/", "debian/changelog",
+                "debian/control"],
                 modified=["README", "COPYING"])
 
     def test_import_two_roots(self):
         version1 = Version("0.1-0ubuntu1")
-        version2 = Version("0.1-1")
+        version2 = Version("0.2-1")
         builder = SourcePackageBuilder("package", version1)
         cl = Changelog()
         cl.new_block(package="package", version=version1,
                 distributions="intrepid", urgency="low",
-                author="Maint <maint at maint.org",
+                author="Maint <maint at maint.org>",
                 date="Wed, 19 Mar 2008 21:27:37 +0000")
         cl.add_change("  * foo")
         builder.add_upstream_file("README", "foo")
         builder.add_debian_file("debian/changelog", str(cl))
+        builder.add_default_control()
         builder.build()
         self.db2.import_package(builder.dsc_name())
         cl = Changelog()
         cl.new_block(package="package", version=version2,
                 distributions="unstable", urgency="low",
-                author="Maint <maint at maint.org",
+                author="Maint <maint at maint.org>",
                 date="Wed, 19 Mar 2008 21:27:37 +0000")
         cl.add_change("  * foo")
         builder = SourcePackageBuilder("package", version2)
         builder.add_upstream_file("README", "bar")
         builder.add_debian_file("debian/changelog", str(cl))
+        builder.add_default_control()
         builder.build()
         self.db1.import_package(builder.dsc_name())
         rh1 = self.tree1.branch.revision_history()
@@ -2158,9 +2174,9 @@
         up_rev_tree1 = self.up_tree1.branch.repository.revision_tree(rh1[0])
         up_rev_tree2 = self.up_tree2.branch.repository.revision_tree(rh2[0])
         self.check_changes(rev_tree1.changes_from(up_rev_tree1),
-                added=["debian/", "debian/changelog"])
+                added=["debian/", "debian/changelog", "debian/control"])
         self.check_changes(rev_tree2.changes_from(up_rev_tree2),
-                added=["debian/", "debian/changelog"])
+                added=["debian/", "debian/changelog", "debian/control"])
         self.check_changes(rev_tree2.changes_from(rev_tree1),
                 modified=["README", "debian/changelog"])
         self.check_changes(up_rev_tree2.changes_from(up_rev_tree1),
@@ -2187,6 +2203,19 @@
     def add_debian_files(self, files):
         self.debian_files += files
 
+    def add_default_control(self):
+        text = """Source: %s\n""" % self.name
+        self.add_debian_file("debian/control", text)
+
+    def add_default_changelog(self):
+        cl = Changelog()
+        cl.new_block(package=self.name, version=self.version,
+                distributions="unstable", urgency="low",
+                author="Maint <maint at maint.org>",
+                date="Wed, 19 Mar 2008 21:27:37 +0000")
+        cl.add_change("  * foo")
+        self.add_debian_file("debian/changelog", str(cl))
+
     def orig_name(self):
         v_num = str(self.version.upstream_version)
         return "%s_%s.orig.tar.gz" % (self.name, v_num)
@@ -2201,7 +2230,8 @@
         for (path, content) in files_list:
             dirname = os.path.dirname(path)
             if dirname is not None and dirname != "":
-                os.makedirs(os.path.join(basedir, dirname))
+                if not os.path.exists(os.path.join(basedir, dirname)):
+                    os.makedirs(os.path.join(basedir, dirname))
             f = open(os.path.join(basedir, path), 'wb')
             try:
                 if content is None:
@@ -2219,39 +2249,15 @@
         self._make_files(self.upstream_files, basedir)
         return basedir
 
-    def build_orig(self):
-        basedir = self._make_base()
-        tar = tarfile.open(self.orig_name(), 'w:gz')
-        try:
-          tar.add(basedir)
-        finally:
-          tar.close()
-        shutil.rmtree(basedir)
-
     def build(self):
-        self.build_orig()
         basedir = self._make_base()
         orig_basedir = basedir + ".orig"
         shutil.copytree(basedir, orig_basedir)
         self._make_files(self.debian_files, basedir)
-        os.system('diff -Nru %s %s | gzip -9 - > %s' % (orig_basedir,
-                    basedir, self.diff_name()))
+        proc = subprocess.Popen("dpkg-source -sa -b %s" % (basedir),
+                shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+        ret = proc.wait()
+        assert ret == 0, "dpkg-source failed, output:\n%s\n%s" % \
+                (proc.stdout.read(), proc.stderr.read())
         shutil.rmtree(basedir)
-        shutil.rmtree(orig_basedir)
-        f = open(self.dsc_name(), 'wb')
-        try:
-            f.write("""Format: 1.0
-Source: %s
-Version: %s
-Binary: package
-Maintainer: maintainer <maint at maint.org>
-Architecture: any
-Standards-Version: 3.7.2
-Build-Depends: debhelper (>= 5.0.0)
-Files:
- 8636a3e8ae81664bac70158503aaf53a 1328218 %s
- 1acd97ad70445afd5f2a64858296f211 20709   %s
-""" % (self.name, self.version, self.orig_name(), self.diff_name()))
-        finally:
-            f.close()
 



More information about the Pkg-bazaar-commits mailing list