[Pkg-bazaar-commits] ./bzr-builddeb/trunk.old r235: Add support for importing native packages.

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


------------------------------------------------------------
revno: 235
committer: James Westby <jw+debian at jameswestby.net>
branch nick: import
timestamp: Tue 2008-07-08 23:06:37 +0100
message:
  Add support for importing native packages.
  
  Native packages can be imported. A native package version is indicated
  by "deb-native = True" being set as a revision property.
modified:
  import_dsc.py
  tests/test_import_dsc.py
-------------- next part --------------
=== modified file 'import_dsc.py'
--- a/import_dsc.py	2008-06-18 13:36:28 +0000
+++ b/import_dsc.py	2008-07-08 22:06:37 +0000
@@ -1172,6 +1172,22 @@
         self.upstream_tree.branch.tags.set_tag(tag_name,
                 self.upstream_tree.branch.last_revision())
 
+    def is_version_native(self, version):
+        """Determines whether the given version is native.
+
+        :param version: the Version object to test. Must be present in
+            the branch.
+        :return: True if the version is was recorded as native when
+            imported, False otherwise.
+        """
+        revid = self.revid_of_version(version)
+        rev = self.tree.branch.repository.get_revision(revid)
+        try:
+            prop = rev.properties["deb-native"]
+            return prop == "True"
+        except KeyError:
+            return False
+
     def branch_to_pull_version_from(self, version, md5):
         """Checks whether this upload is a pull from a lesser branch.
 
@@ -1480,7 +1496,8 @@
               sep = "\n"
         return (message, author)
 
-    def import_debian(self, debian_part, version, parents, md5):
+    def import_debian(self, debian_part, version, parents, md5,
+            native=False):
         """Import the debian part of a source package.
 
         :param debian_part: the path of a directory containing the unpacked
@@ -1518,7 +1535,10 @@
         if message is None:
             message = 'Import packaging changes for version %s' % \
                         (str(version),)
-        self.tree.commit(message, author=author, revprops={"deb-md5":md5})
+        revprops={"deb-md5":md5}
+        if native:
+            revprops['deb-native'] = "True"
+        self.tree.commit(message, author=author, revprops=revprops)
         self.tag_version(version)
 
     def _get_dsc_part(self, dsc, end):
@@ -1638,7 +1658,8 @@
             self.pull_version_from_branch(pull_branch, version, native=True)
         else:
             parents = self.get_native_parents(version, versions)
-            self.import_debian(debian_part, version, parents, md5)
+            self.import_debian(debian_part, version, parents, md5,
+                    native=True)
 
     def import_package(self, dsc_filename):
         """Import a source package.

=== modified file 'tests/test_import_dsc.py'
--- a/tests/test_import_dsc.py	2008-06-18 13:36:28 +0000
+++ b/tests/test_import_dsc.py	2008-07-08 22:06:37 +0000
@@ -2155,6 +2155,16 @@
         self.check_changes(up_rev_tree2.changes_from(up_rev_tree1),
                 modified=["README"])
 
+    def test_is_native_version(self):
+        version1 = Version("0.1-0ubuntu1")
+        version2 = Version("0.2-1")
+        self.tree1.commit("one")
+        self.db1.tag_version(version1)
+        self.tree1.commit("two", revprops={'deb-native': "True"})
+        self.db1.tag_version(version2)
+        self.assertFalse(self.db1.is_version_native(version1))
+        self.assertTrue(self.db1.is_version_native(version2))
+
     def test_import_native(self):
         version = Version("1.0")
         builder = SourcePackageBuilder("package", version, native=True)
@@ -2165,6 +2175,7 @@
         up_rh1 = self.up_tree1.branch.revision_history()
         self.assertEqual(len(rh1), 1)
         self.assertEqual(len(up_rh1), 0)
+        self.assertTrue(self.db1.is_version_native(version))
 
     def test_import_native_two(self):
         version1 = Version("1.0")
@@ -2194,6 +2205,8 @@
                 modified=["debian/changelog", "COPYING"])
         self.assertEqual(self.db1.revid_of_version(version1), rh1[0])
         self.assertEqual(self.db1.revid_of_version(version2), rh1[1])
+        self.assertTrue(self.db1.is_version_native(version1))
+        self.assertTrue(self.db1.is_version_native(version2))
 
 
 class SourcePackageBuilder(object):



More information about the Pkg-bazaar-commits mailing list