Rev 5101: Implement reload() and test that it also notifies about updates. in http://bzr.arbash-meinel.com/branches/bzr/lp/2.2.0b2-contained-pack
John Arbash Meinel
john at arbash-meinel.com
Mon Mar 8 21:59:32 GMT 2010
At http://bzr.arbash-meinel.com/branches/bzr/lp/2.2.0b2-contained-pack
------------------------------------------------------------
revno: 5101
revision-id: john at arbash-meinel.com-20100308215925-or3lq7hnateakrju
parent: john at arbash-meinel.com-20100308211511-jmk25089ymoiwcl8
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: 2.2.0b2-contained-pack
timestamp: Mon 2010-03-08 15:59:25 -0600
message:
Implement reload() and test that it also notifies about updates.
-------------- next part --------------
=== modified file 'bzrlib/pack_collection.py'
--- a/bzrlib/pack_collection.py 2010-03-08 21:15:11 +0000
+++ b/bzrlib/pack_collection.py 2010-03-08 21:59:25 +0000
@@ -250,6 +250,8 @@
if self._memos is not None:
result = False
else:
+ # TODO: Should we call 'add_memo' or 'init_memo' for all memos that
+ # are already present?
memos = set(self.index_policy.read_index())
self._memos = dict(memos)
self._last_read_memos = memos
@@ -261,7 +263,6 @@
:return: Information about what content has changed.
"""
- assert False # We haven't tested this yet
if self._ensure_loaded():
# We haven't read anything before, so obviously the memory
# structures changed..
=== modified file 'bzrlib/tests/test_pack_collection.py'
--- a/bzrlib/tests/test_pack_collection.py 2010-03-08 21:15:11 +0000
+++ b/bzrlib/tests/test_pack_collection.py 2010-03-08 21:59:25 +0000
@@ -384,3 +384,50 @@
d_added=[self._m4],
m_removed=[self._m2],
m_added=[self._m5])
+
+ def test_reload_not_loaded(self):
+ self.tracker.add_memo(*self._m1)
+ self.tracker.save()
+ tracker2 = self.make_tracker()
+ self.assertTrue(tracker2.reload())
+
+ def test_reload_nothing_changed(self):
+ self.tracker.add_memo(*self._m1)
+ self.tracker.save()
+ self.assertFalse(self.tracker.reload())
+
+ def test_reload_disk_added(self):
+ self.tracker.add_memo(*self._m1)
+ self.tracker.save()
+ tracker2 = self.make_tracker()
+ tracker2.add_memo(*self._m2)
+ tracker2.save()
+ policy = LoggingUpdatePolicy()
+ self.tracker.update_policy = policy
+ self.assertTrue(self.tracker.reload())
+ self.assertEqual([('added', 'name2', 'content2')], policy.log)
+
+ def test_reload_disk_removed(self):
+ self.tracker.add_memo(*self._m1)
+ self.tracker.save()
+ tracker2 = self.make_tracker()
+ tracker2.remove_memo(*self._m1)
+ tracker2.save()
+ policy = LoggingUpdatePolicy()
+ self.tracker.update_policy = policy
+ self.assertTrue(self.tracker.reload())
+ self.assertEqual([('removed', 'name1', 'content1')], policy.log)
+
+ def test_reload_disk_modified(self):
+ self.tracker.add_memo(*self._m1)
+ self.tracker.save()
+ tracker2 = self.make_tracker()
+ tracker2.remove_memo(*self._m1)
+ tracker2.add_memo('name1', 'alternate-content')
+ tracker2.save()
+ policy = LoggingUpdatePolicy()
+ self.tracker.update_policy = policy
+ self.assertTrue(self.tracker.reload())
+ self.assertEqual([('removed', 'name1', 'content1'),
+ ('added', 'name1', 'alternate-content'),
+ ], policy.log)
More information about the bazaar-commits
mailing list