[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