Rev 1750: Review feedback. in http://people.ubuntu.com/~robertc/baz2.0/readdir

Robert Collins robertc at robertcollins.net
Tue Sep 2 04:03:19 BST 2008


At http://people.ubuntu.com/~robertc/baz2.0/readdir

------------------------------------------------------------
revno: 1750
revision-id: robertc at robertcollins.net-20080902030315-0ri2lp0vefnivjhm
parent: robertc at robertcollins.net-20080820034904-kmsanmn54239kiom
committer: Robert Collins <robertc at robertcollins.net>
branch nick: readdir
timestamp: Tue 2008-09-02 13:03:15 +1000
message:
  Review feedback.
modified:
  bzrlib/_readdir_pyx.pyx        readdir.pyx-20060609152855-rm6v321vuaqyh9tu-1
  bzrlib/tests/test_osutils.py   test_osutils.py-20051201224856-e48ee24c12182989
=== modified file 'bzrlib/_readdir_pyx.pyx'
--- a/bzrlib/_readdir_pyx.pyx	2008-08-20 03:30:17 +0000
+++ b/bzrlib/_readdir_pyx.pyx	2008-09-02 03:03:15 +0000
@@ -105,7 +105,7 @@
             name = entry.d_name
             if not (name[0] == dot and (
                 (name[1] == 0) or 
-                (name[1] == dot and name [2] == 0))
+                (name[1] == dot and name[2] == 0))
                 ):
                 result.append((entry.d_ino, entry.d_name))
     finally:

=== modified file 'bzrlib/tests/test_osutils.py'
--- a/bzrlib/tests/test_osutils.py	2008-08-20 03:30:17 +0000
+++ b/bzrlib/tests/test_osutils.py	2008-09-02 03:03:15 +0000
@@ -60,11 +60,11 @@
     to_adapt, result = split_suite_by_re(standard_tests, "readdir")
     adapter = TestScenarioApplier()
     from bzrlib import _readdir_py
-    adapter.scenarios = [('python', {'read_dir':_readdir_py.read_dir})]
+    adapter.scenarios = [('python', {'read_dir': _readdir_py.read_dir})]
     try:
         from bzrlib import _readdir_pyx
         adapter.scenarios.append(
-            (('pyrex', {'read_dir':_readdir_pyx.read_dir})))
+            (('pyrex', {'read_dir': _readdir_pyx.read_dir})))
     except ImportError:
         pass
     adapt_tests(to_adapt, adapter, result)
@@ -751,19 +751,23 @@
             ]
         self.build_tree(tree)
         expected_names = ['.bzr', '0file', '1dir', '2file']
-        # read_dir either returns None, or a value
+        # read_dir returns pairs, which form a table with either None in all
+        # the first columns, or a sort key to get best on-disk-read order, 
+        # and the disk path name in utf-8 encoding in the second column.
         read_result = self.read_dir('.')
+        # The second column is always the names, and every name except "." and
+        # ".." should be present.
+        names = sorted([row[1] for row in read_result])
+        self.assertEqual(expected_names, names)
+        expected_sort_key = None
         if read_result[0][0] is None:
-            # No innate sort:
-            expected_keys = [None, None, None, None]
-            expected = zip(expected_keys, expected_names)
-            expected.sort()
-            self.assertEqual(expected, sorted(read_result))
+            # No sort key returned - all keys must None
+            operator = self.assertEqual
         else:
-            # Check that the names we need are present in the second
-            # column
-            names = sorted([result[1] for result in read_result])
-            self.assertEqual(expected_names, names)
+            # A sort key in the first row implies sort keys in the other rows.
+            operator = self.assertNotEqual
+        for row in read_result:
+            operator(None, row[0])
         
     def test_walkdirs(self):
         tree = [




More information about the bazaar-commits mailing list