Rev 2693: More tests for bzrlib.knit._PackAccess. in http://people.ubuntu.com/~robertc/baz2.0/repository
Robert Collins
robertc at robertcollins.net
Thu Aug 2 08:08:35 BST 2007
At http://people.ubuntu.com/~robertc/baz2.0/repository
------------------------------------------------------------
revno: 2693
revision-id: robertc at robertcollins.net-20070802070832-5m0oapk9ian9h5q1
parent: robertc at robertcollins.net-20070802062654-klu22dv5vnelnk4m
committer: Robert Collins <robertc at robertcollins.net>
branch nick: repository
timestamp: Thu 2007-08-02 17:08:32 +1000
message:
More tests for bzrlib.knit._PackAccess.
modified:
bzrlib/tests/test_knit.py test_knit.py-20051212171302-95d4c00dd5f11f2b
=== modified file 'bzrlib/tests/test_knit.py'
--- a/bzrlib/tests/test_knit.py 2007-08-02 06:26:54 +0000
+++ b/bzrlib/tests/test_knit.py 2007-08-02 07:08:32 +0000
@@ -165,7 +165,22 @@
access = self.get_access()
memos = access.add_raw_records([10], '1234567890')
self.assertEqual(['1234567890'], list(access.get_raw_records(memos)))
-
+
+ def test_add_several_raw_records(self):
+ """add_raw_records with many records and read some back."""
+ access = self.get_access()
+ memos = access.add_raw_records([10, 2, 5], '12345678901234567')
+ self.assertEqual(['1234567890', '12', '34567'],
+ list(access.get_raw_records(memos)))
+ self.assertEqual(['1234567890'],
+ list(access.get_raw_records(memos[0:1])))
+ self.assertEqual(['12'],
+ list(access.get_raw_records(memos[1:2])))
+ self.assertEqual(['34567'],
+ list(access.get_raw_records(memos[2:3])))
+ self.assertEqual(['1234567890', '34567'],
+ list(access.get_raw_records(memos[0:1] + memos[2:3])))
+
def test_create(self):
"""create() should make a file on disk."""
access = self.get_access()
@@ -177,13 +192,6 @@
access = self.get_access()
access.open_file()
-# what is the key interface elements - what code do I want to write:
-# insertion:
-# here is a raw record. please write it somewhere and return the readv I should
-# make to get it back.
-# here are many records -> returns many readvs
-# here is a readv I was given earlier, please return the raw data
-
class TestKnitKnitAccess(TestCaseWithMemoryTransport, KnitRecordAccessTestsMixin):
"""Tests for the .kndx implementation."""
@@ -207,20 +215,43 @@
pass
def get_access(self):
+ return self._get_access()[0]
+
+ def _get_access(self, packname='packfile', index='FOO'):
transport = self.get_transport()
def write_data(bytes):
- transport.append_bytes('packfile', bytes)
+ transport.append_bytes(packname, bytes)
writer = pack.ContainerWriter(write_data)
writer.begin()
- index = "FOO"
- indices = {"FOO":(transport, 'packfile')}
- access = _PackAccess(indices, writer=(writer, 'FOO'))
- return access
+ indices = {index:(transport, packname)}
+ access = _PackAccess(indices, writer=(writer, index))
+ return access, writer
-# missing tests:
-# - add several records
-# - read from several packs
-# - add data readonly?
+ def test_read_from_several_packs(self):
+ access, writer = self._get_access()
+ memos = []
+ memos.extend(access.add_raw_records([10], '1234567890'))
+ writer.end()
+ access, writer = self._get_access('pack2', 'FOOBAR')
+ memos.extend(access.add_raw_records([5], '12345'))
+ writer.end()
+ access, writer = self._get_access('pack3', 'BAZ')
+ memos.extend(access.add_raw_records([5], 'alpha'))
+ writer.end()
+ transport = self.get_transport()
+ access = _PackAccess({"FOO":(transport, 'packfile'),
+ "FOOBAR":(transport, 'pack2'),
+ "BAZ":(transport, 'pack3')})
+ self.assertEqual(['1234567890', '12345', 'alpha'],
+ list(access.get_raw_records(memos)))
+ self.assertEqual(['1234567890'],
+ list(access.get_raw_records(memos[0:1])))
+ self.assertEqual(['12345'],
+ list(access.get_raw_records(memos[1:2])))
+ self.assertEqual(['alpha'],
+ list(access.get_raw_records(memos[2:3])))
+ self.assertEqual(['1234567890', 'alpha'],
+ list(access.get_raw_records(memos[0:1] + memos[2:3])))
class LowLevelKnitDataTests(TestCase):
More information about the bazaar-commits
mailing list