Rev 2696: Allow setting a writer after creating a knit._PackAccess object. in http://people.ubuntu.com/~robertc/baz2.0/repository
Robert Collins
robertc at robertcollins.net
Thu Aug 2 08:41:05 BST 2007
At http://people.ubuntu.com/~robertc/baz2.0/repository
------------------------------------------------------------
revno: 2696
revision-id: robertc at robertcollins.net-20070802074102-wm3rjkbeb9bc39t2
parent: robertc at robertcollins.net-20070802073628-3q69fgiaf5vqfcpu
committer: Robert Collins <robertc at robertcollins.net>
branch nick: repository
timestamp: Thu 2007-08-02 17:41:02 +1000
message:
Allow setting a writer after creating a knit._PackAccess object.
modified:
bzrlib/knit.py knit.py-20051212171256-f056ac8f0fbe1bd9
bzrlib/tests/test_knit.py test_knit.py-20051212171302-95d4c00dd5f11f2b
=== modified file 'bzrlib/knit.py'
--- a/bzrlib/knit.py 2007-08-02 07:36:28 +0000
+++ b/bzrlib/knit.py 2007-08-02 07:41:02 +0000
@@ -1829,6 +1829,12 @@
"""Pack based knits have no single file."""
return None
+ def set_writer(self, writer, index, (transport, packname)):
+ """Set a writer to use for adding data."""
+ self.indices[index] = (transport, packname)
+ self.container_writer = writer
+ self.write_index = index
+
class _KnitData(object):
"""Manage extraction of data from a KnitAccess, caching and decompressing."""
=== modified file 'bzrlib/tests/test_knit.py'
--- a/bzrlib/tests/test_knit.py 2007-08-02 07:34:14 +0000
+++ b/bzrlib/tests/test_knit.py 2007-08-02 07:41:02 +0000
@@ -253,6 +253,21 @@
self.assertEqual(['1234567890', 'alpha'],
list(access.get_raw_records(memos[0:1] + memos[2:3])))
+ def test_set_writer(self):
+ """The writer should be settable post construction."""
+ access = _PackAccess({})
+ transport = self.get_transport()
+ packname = 'packfile'
+ index = 'foo'
+ def write_data(bytes):
+ transport.append_bytes(packname, bytes)
+ writer = pack.ContainerWriter(write_data)
+ writer.begin()
+ access.set_writer(writer, index, (transport, packname))
+ memos = access.add_raw_records([10], '1234567890')
+ writer.end()
+ self.assertEqual(['1234567890'], list(access.get_raw_records(memos)))
+
class LowLevelKnitDataTests(TestCase):
More information about the bazaar-commits
mailing list