Rev 3526: Found some problems in _path_key, and made sure to have proper testing of _cmp_paths_by_dirblock in http://bzr.arbash-meinel.com/branches/bzr/1.6-dev/multi_walker
John Arbash Meinel
john at arbash-meinel.com
Fri Aug 1 18:24:27 BST 2008
At http://bzr.arbash-meinel.com/branches/bzr/1.6-dev/multi_walker
------------------------------------------------------------
revno: 3526
revision-id: john at arbash-meinel.com-20080801172424-rwe2i959lhuwe4jt
parent: john at arbash-meinel.com-20080801132934-yk7f0pg3ox0um0yc
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: multi_walker
timestamp: Fri 2008-08-01 12:24:24 -0500
message:
Found some problems in _path_key, and made sure to have proper testing of _cmp_paths_by_dirblock
modified:
bzrlib/tests/test_tree.py test_tree.py-20060724065232-khgrr0vvmt6ih0mi-1
bzrlib/tree.py tree.py-20050309040759-9d5f2496be663e77
-------------- next part --------------
=== modified file 'bzrlib/tests/test_tree.py'
--- a/bzrlib/tests/test_tree.py 2008-06-30 23:21:57 +0000
+++ b/bzrlib/tests/test_tree.py 2008-08-01 17:24:24 +0000
@@ -386,3 +386,34 @@
self.assertWalkerNext(u'c/d', 'b-id', True, [u'c/d', u'b'], iterator)
self.assertWalkerNext(u'c/e', 'a-id', True, [u'a', u'a'], iterator)
self.assertRaises(StopIteration, iterator.next)
+
+ def assertCmpByDirblock(self, cmp_val, path1, path2):
+ self.assertEqual(cmp_val,
+ _mod_tree.MultiWalker._cmp_path_by_dirblock(path1, path2))
+
+ def test__cmp_path_by_dirblock(self):
+ # We only support Unicode strings at this point
+ self.assertRaises(TypeError,
+ _mod_tree.MultiWalker._cmp_path_by_dirblock, '', 'b')
+ self.assertCmpByDirblock(0, u'', u'')
+ self.assertCmpByDirblock(0, u'a', u'a')
+ self.assertCmpByDirblock(0, u'a/b', u'a/b')
+ self.assertCmpByDirblock(0, u'a/b/c', u'a/b/c')
+ self.assertCmpByDirblock(1, u'a-a', u'a')
+ self.assertCmpByDirblock(-1, u'a-a', u'a/a')
+ self.assertCmpByDirblock(-1, u'a=a', u'a/a')
+ self.assertCmpByDirblock(1, u'a-a/a', u'a/a')
+ self.assertCmpByDirblock(1, u'a=a/a', u'a/a')
+ self.assertCmpByDirblock(1, u'a-a/a', u'a/a/a')
+ self.assertCmpByDirblock(1, u'a=a/a', u'a/a/a')
+ self.assertCmpByDirblock(1, u'a-a/a/a', u'a/a/a')
+ self.assertCmpByDirblock(1, u'a=a/a/a', u'a/a/a')
+
+ def assertPathKey(self, expected, path):
+ self.assertEqual(expected, _mod_tree.MultiWalker._path_key(path))
+
+ def test__path_key(self):
+ self.assertPathKey(([u''], u''), u'')
+ self.assertPathKey(([u''], u'a'), u'a')
+ self.assertPathKey(([u'a'], u'b'), u'a/b')
+ self.assertPathKey(([u'a', u'b'], u'c'), u'a/b/c')
=== modified file 'bzrlib/tree.py'
--- a/bzrlib/tree.py 2008-08-01 13:29:34 +0000
+++ b/bzrlib/tree.py 2008-08-01 17:24:24 +0000
@@ -980,8 +980,7 @@
return cmp(MultiWalker._path_key(path1), MultiWalker._path_key(path2))
@staticmethod
- def _path_key(other):
- path = other[0]
+ def _path_key(path):
dirname, basename = osutils.split(path)
return (dirname.split(u'/'), basename)
More information about the bazaar-commits
mailing list