Rev 2258: Create __str__ and __repr__ forms which expose some internals. in http://bzr.arbash-meinel.com/branches/bzr/0.15-dev/list_patch
John Arbash Meinel
john at arbash-meinel.com
Tue Jan 30 19:05:12 GMT 2007
At http://bzr.arbash-meinel.com/branches/bzr/0.15-dev/list_patch
------------------------------------------------------------
revno: 2258
revision-id: john at arbash-meinel.com-20070130190506-vurde2hqemerst4x
parent: john at arbash-meinel.com-20070130185517-0ky3r2iqnyytftak
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: list_patch
timestamp: Tue 2007-01-30 13:05:06 -0600
message:
Create __str__ and __repr__ forms which expose some internals.
modified:
bzrlib/hybrid_linked_list.py hybrid_linked_list.p-20070130001028-zlexwz74tzo56o2t-1
bzrlib/tests/test_hybrid_linked_list.py test_hybrid_linked_l-20070130001028-zlexwz74tzo56o2t-2
-------------- next part --------------
=== modified file 'bzrlib/hybrid_linked_list.py'
--- a/bzrlib/hybrid_linked_list.py 2007-01-30 18:55:17 +0000
+++ b/bzrlib/hybrid_linked_list.py 2007-01-30 19:05:06 +0000
@@ -162,6 +162,19 @@
pos = len(self) + pos
self.delete(pos, pos+1)
+ def __str__(self):
+ """str(HybridLinkedList) just returns the list representation."""
+ return str(list(self))
+
+ def __repr__(self):
+ """repr(HybridLinkedList) gives more information about internals."""
+ flattened = []
+ cur = self._head
+ while cur is not None:
+ flattened.append('%s:%s' % (cur, self._ranges[cur]))
+ cur = self._links[cur]
+ return 'HybridLinkedList(' + ', '.join(flattened) + ')'
+
def flatten(self):
"""Flatten the linked structure into a single list."""
self._reset(list(self))
=== modified file 'bzrlib/tests/test_hybrid_linked_list.py'
--- a/bzrlib/tests/test_hybrid_linked_list.py 2007-01-30 18:55:17 +0000
+++ b/bzrlib/tests/test_hybrid_linked_list.py 2007-01-30 19:05:06 +0000
@@ -102,6 +102,32 @@
self.assertEqual([], hll[20:])
self.assertEqual([], hll[20:21])
+ def test__str__and__repr__(self):
+ hll = hybrid_linked_list.HybridLinkedList([0, 1, 2, 3, 4])
+ self.assertEqual('[0, 1, 2, 3, 4]', str(hll))
+ self.assertEqual('HybridLinkedList(0:(0, 5, [0, 1, 2, 3, 4]))',
+ repr(hll))
+
+ hll[5:5] = [5, 6]
+ hll.insert(7, [7, 8])
+ self.assertEqual('[0, 1, 2, 3, 4, 5, 6, 7, 8]', str(hll))
+ self.assertEqual('HybridLinkedList(0:(0, 5, [0, 1, 2, 3, 4]),'
+ ' 1:(0, 2, [5, 6]), 2:(0, 2, [7, 8]))',
+ repr(hll))
+
+ del hll[5:7]
+ self.assertEqual('[0, 1, 2, 3, 4, 7, 8]', str(hll))
+ self.assertEqual('HybridLinkedList(0:(0, 5, [0, 1, 2, 3, 4]),'
+ ' 2:(0, 2, [7, 8]))',
+ repr(hll))
+ del hll[2:4]
+ self.assertEqual('[0, 1, 4, 7, 8]', str(hll))
+ self.assertEqual('HybridLinkedList(0:(0, 2, [0, 1, 2, 3, 4]),'
+ ' 3:(4, 5, [0, 1, 2, 3, 4]),'
+ ' 2:(0, 2, [7, 8]))',
+ repr(hll))
+
+
def test__setitem__(self):
hll = hybrid_linked_list.HybridLinkedList([0, 1, 2, 3, 4, 5, 6, 7, 8])
hll.delete(2, 3)
More information about the bazaar-commits
mailing list