Rev 4257: (ianc) per_repository/test_repository improvements (Robert Collins) in file:///home/pqm/archives/thelove/bzr/%2Btrunk/

Canonical.com Patch Queue Manager pqm at pqm.ubuntu.com
Mon Apr 6 06:20:55 BST 2009


At file:///home/pqm/archives/thelove/bzr/%2Btrunk/

------------------------------------------------------------
revno: 4257
revision-id: pqm at pqm.ubuntu.com-20090406052052-fyud2y3vlghiasig
parent: pqm at pqm.ubuntu.com-20090406043355-a94p92pr191lpmv1
parent: ian.clatworthy at canonical.com-20090406030823-ge8tb6axp9qb5l9r
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Mon 2009-04-06 06:20:52 +0100
message:
  (ianc) per_repository/test_repository improvements (Robert Collins)
modified:
  bzrlib/tests/per_repository/test_repository.py test_repository.py-20060131092128-ad07f494f5c9d26c
    ------------------------------------------------------------
    revno: 4254.1.1
    revision-id: ian.clatworthy at canonical.com-20090406030823-ge8tb6axp9qb5l9r
    parent: pqm at pqm.ubuntu.com-20090406024730-9559ntr7fvmgug6r
    parent: ian.clatworthy at canonical.com-20090406022010-0g7p5bb1kxdn16ar
    committer: Ian Clatworthy <ian.clatworthy at canonical.com>
    branch nick: ianc-integration
    timestamp: Mon 2009-04-06 13:08:23 +1000
    message:
      per_repository/test_repository improvements (Robert Collins)
    modified:
      bzrlib/tests/per_repository/test_repository.py test_repository.py-20060131092128-ad07f494f5c9d26c
    ------------------------------------------------------------
    revno: 4253.3.1
    revision-id: ian.clatworthy at canonical.com-20090406022010-0g7p5bb1kxdn16ar
    parent: pqm at pqm.ubuntu.com-20090404000810-fqvkqdjx9s1h9ks3
    committer: Ian Clatworthy <ian.clatworthy at canonical.com>
    branch nick: bzr.bris-per-repo-test
    timestamp: Mon 2009-04-06 12:20:10 +1000
    message:
      per_repository/test_repository improvements (Robert Collins)
    modified:
      bzrlib/tests/per_repository/test_repository.py test_repository.py-20060131092128-ad07f494f5c9d26c
=== modified file 'bzrlib/tests/per_repository/test_repository.py'
--- a/bzrlib/tests/per_repository/test_repository.py	2009-03-24 01:53:42 +0000
+++ b/bzrlib/tests/per_repository/test_repository.py	2009-04-06 02:20:10 +0000
@@ -255,7 +255,10 @@
         tree = self.make_branch_and_tree('a')
         tree.commit('')
         second_revision = tree.commit('')
-        inv = tree.branch.repository.revision_tree(second_revision).inventory
+        rev_tree = tree.branch.repository.revision_tree(second_revision)
+        rev_tree.lock_read()
+        self.addCleanup(rev_tree.unlock)
+        inv = rev_tree.inventory
         rich_root = (inv.root.revision != second_revision)
         self.assertEqual(rich_root,
                          tree.branch.repository.supports_rich_root())
@@ -363,17 +366,29 @@
         wt.set_root_id('fixed-root')
         wt.commit('lala!', rev_id='revision-1', allow_pointless=True)
         tree = wt.branch.repository.revision_tree('revision-1')
-        self.assertEqual('revision-1', tree.inventory.root.revision)
-        expected = InventoryDirectory('fixed-root', '', None)
-        expected.revision = 'revision-1'
-        self.assertEqual([('', 'V', 'directory', 'fixed-root', expected)],
-                         list(tree.list_files(include_root=True)))
+        tree.lock_read()
+        try:
+            self.assertEqual('revision-1', tree.inventory.root.revision)
+            expected = InventoryDirectory('fixed-root', '', None)
+            expected.revision = 'revision-1'
+            self.assertEqual([('', 'V', 'directory', 'fixed-root', expected)],
+                             list(tree.list_files(include_root=True)))
+        finally:
+            tree.unlock()
         tree = self.callDeprecated(['NULL_REVISION should be used for the null'
             ' revision instead of None, as of bzr 0.91.'],
             wt.branch.repository.revision_tree, None)
-        self.assertEqual([], list(tree.list_files(include_root=True)))
+        tree.lock_read()
+        try:
+            self.assertEqual([], list(tree.list_files(include_root=True)))
+        finally:
+            tree.unlock()
         tree = wt.branch.repository.revision_tree(NULL_REVISION)
-        self.assertEqual([], list(tree.list_files(include_root=True)))
+        tree.lock_read()
+        try:
+            self.assertEqual([], list(tree.list_files(include_root=True)))
+        finally:
+            tree.unlock()
 
     def test_get_revision_delta(self):
         tree_a = self.make_branch_and_tree('a')
@@ -571,6 +586,8 @@
         tree = self.make_branch_and_tree('.')
         tree.commit('message', rev_id='rev_id')
         rev_tree = tree.branch.repository.revision_tree(tree.last_revision())
+        rev_tree.lock_read()
+        self.addCleanup(rev_tree.unlock)
         self.assertEqual('rev_id', rev_tree.inventory.root.revision)
 
     def test_upgrade_from_format4(self):
@@ -744,10 +761,20 @@
                          repo.get_signature_text('A'))
 
     def test_add_revision_inventory_sha1(self):
-        repo = self.make_repository('repo')
         inv = Inventory(revision_id='A')
         inv.root.revision = 'A'
         inv.root.file_id = 'fixed-root'
+        # Insert the inventory on its own to an identical repository, to get
+        # its sha1.
+        reference_repo = self.make_repository('reference_repo')
+        reference_repo.lock_write()
+        reference_repo.start_write_group()
+        inv_sha1 = reference_repo.add_inventory('A', inv, [])
+        reference_repo.abort_write_group()
+        reference_repo.unlock()
+        # Now insert a revision with this inventory, and it should get the same
+        # sha1.
+        repo = self.make_repository('repo')
         repo.lock_write()
         repo.start_write_group()
         repo.add_revision('A', Revision('A', committer='B', timestamp=0,
@@ -755,9 +782,7 @@
         repo.commit_write_group()
         repo.unlock()
         repo.lock_read()
-        self.assertEquals(osutils.sha_string(
-            repo._serializer.write_inventory_to_string(inv)),
-            repo.get_revision('A').inventory_sha1)
+        self.assertEquals(inv_sha1, repo.get_revision('A').inventory_sha1)
         repo.unlock()
 
     def test_install_revisions(self):




More information about the bazaar-commits mailing list