[Pkg-bazaar-commits] r138 ./bzr-builddeb/people/jdw/merge_upstream: Test the native -> non-native transition.

James Westby jw+debian at jameswestby.net
Sun Jul 1 14:58:33 UTC 2007


------------------------------------------------------------
revno: 138
committer: James Westby <jw+debian at jameswestby.net>
branch nick: merge_upstream
timestamp: Sun 2007-07-01 15:58:33 +0100
message:
  Test the native -> non-native transition.
  
  This seems to work ok as well, but it is currently quite strange as the
  packaging branch after has no relationship with the native package, and to
  the file-ids are different, so debian/changelog etc. appear to disappear
  and reappear, where they are probably related.
modified:
  import_dsc.py
  tests/test_import_dsc.py
-------------- next part --------------
=== modified file 'import_dsc.py'
--- a/import_dsc.py	2007-07-01 14:13:48 +0000
+++ b/import_dsc.py	2007-07-01 14:58:33 +0000
@@ -452,7 +452,7 @@
           self.import_native(tree, filename, version,
                              last_upstream=last_upstream,
                              transport=transport, base_dir=base_dir)
-          last_upstream = version.upstream_version
+          last_upstream = None
           info("imported %s" % filename)
     finally:
       tree.unlock()

=== modified file 'tests/test_import_dsc.py'
--- a/tests/test_import_dsc.py	2007-07-01 14:13:48 +0000
+++ b/tests/test_import_dsc.py	2007-07-01 14:58:33 +0000
@@ -700,3 +700,68 @@
     self.assertEqual(len(changes.removed), 1)
     self.assertEqual(changes.removed[0][0], 'debian/install')
 
+  def test_native_to_non_native(self):
+    self.make_native_dsc_1()
+    shutil.rmtree(os.path.join(self.basedir, 'debian'))
+    self.make_dsc_2()
+    importer = DscImporter([self.native_dsc_1, self.dsc_2])
+    importer.import_dsc(self.target)
+    tree = WorkingTree.open(self.target)
+    expected_inv = ['CHANGELOG', 'README', 'Makefile', 'NEWS', 'from_debian',
+                    'debian/', 'debian/changelog', 'debian/install']
+    tree.lock_read()
+    try:
+      self.check_inventory_shape(tree.inventory, expected_inv)
+    finally:
+      tree.unlock()
+    self.assertEqual(tree.changes_from(tree.basis_tree()).has_changed(), False)
+    rh = tree.branch.revision_history()
+    self.assertEqual(len(rh), 3)
+    rev = tree.branch.repository.get_revision(rh[0])
+    self.assertEqual(rev.message,
+                     "import package from %s" % \
+                     os.path.basename(self.native_1))
+    rev = tree.branch.repository.get_revision(rh[1])
+    self.assertEqual(rev.message,
+                     "import upstream from %s" % \
+                     os.path.basename(self.orig_2))
+    rev = tree.branch.repository.get_revision(rh[2])
+    self.assertEqual(rev.message,
+                     "merge packaging changes from %s" % \
+                     os.path.basename(self.diff_2))
+    self.assertEqual(len(tree.get_parent_ids()), 1)
+    parents = tree.branch.repository.revision_tree(rh[1]).get_parent_ids()
+    self.assertEqual(len(parents), 1)
+    parents = tree.branch.repository.revision_tree(rh[2]).get_parent_ids()
+    self.assertEqual(len(parents), 1)
+    up_tree = tree.branch.repository.revision_tree(rh[1])
+    changes = tree.changes_from(up_tree)
+    self.assertEqual(len(changes.added), 3)
+    self.assertEqual(changes.added[0][0], 'debian')
+    self.assertEqual(changes.added[1][0], 'debian/changelog')
+    self.assertEqual(changes.added[2][0], 'debian/install')
+    self.assertEqual(changes.modified, [])
+    self.assertEqual(changes.removed, [])
+    changes = up_tree.changes_from(tree.branch.repository.revision_tree(rh[0]))
+    self.assertEqual(len(changes.added), 2)
+    self.assertEqual(changes.added[0][0], 'NEWS')
+    self.assertEqual(changes.added[1][0], 'from_debian')
+    self.assertEqual(len(changes.modified), 1, str(changes.modified))
+    self.assertEqual(changes.modified[0][0], 'Makefile')
+    self.assertEqual(len(changes.removed), 2)
+    self.assertEqual(changes.removed[0][0], 'debian')
+    self.assertEqual(changes.removed[1][0], 'debian/changelog')
+    # FIXME: Should changelog etc. be added/removed or not?
+    changes = tree.changes_from(tree.branch.repository.revision_tree(rh[0]))
+    self.assertEqual(len(changes.added), 5, str(changes.added))
+    self.assertEqual(changes.added[0][0], 'NEWS')
+    self.assertEqual(changes.added[1][0], 'debian')
+    self.assertEqual(changes.added[2][0], 'debian/changelog')
+    self.assertEqual(changes.added[3][0], 'debian/install')
+    self.assertEqual(changes.added[4][0], 'from_debian')
+    self.assertEqual(len(changes.modified), 1)
+    self.assertEqual(changes.modified[0][0], 'Makefile')
+    self.assertEqual(len(changes.removed), 2)
+    self.assertEqual(changes.removed[0][0], 'debian')
+    self.assertEqual(changes.removed[1][0], 'debian/changelog')
+



More information about the Pkg-bazaar-commits mailing list