Rev 1753: Add ReadDirFeature as per John's review. in http://people.ubuntu.com/~robertc/baz2.0/readdir

Robert Collins robertc at robertcollins.net
Wed Sep 3 06:54:09 BST 2008


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

------------------------------------------------------------
revno: 1753
revision-id: robertc at robertcollins.net-20080903055405-qqa5hj0d45cbv11j
parent: robertc at robertcollins.net-20080902044547-9s1i9d3mwemkfrsp
committer: Robert Collins <robertc at robertcollins.net>
branch nick: readdir
timestamp: Wed 2008-09-03 15:54:05 +1000
message:
  Add ReadDirFeature as per John's review.
modified:
  bzrlib/tests/test_osutils.py   test_osutils.py-20051201224856-e48ee24c12182989
=== modified file 'bzrlib/tests/test_osutils.py'
--- a/bzrlib/tests/test_osutils.py	2008-09-02 03:03:15 +0000
+++ b/bzrlib/tests/test_osutils.py	2008-09-03 05:54:05 +0000
@@ -40,6 +40,7 @@
         )
 from bzrlib.tests import (
         adapt_tests,
+        Feature,
         probe_unicode_in_user_encoding,
         split_suite_by_re,
         StringIOWrapper,
@@ -61,16 +62,29 @@
     adapter = TestScenarioApplier()
     from bzrlib import _readdir_py
     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})))
-    except ImportError:
-        pass
+    if ReadDirFeature.available():
+        adapter.scenarios.append(('pyrex',
+            {'read_dir': ReadDirFeature.read_dir}))
     adapt_tests(to_adapt, adapter, result)
     return result
 
 
+class _ReadDirFeature(Feature):
+
+    def _probe(self):
+        try:
+            from bzrlib import _readdir_pyx
+            self.read_dir = _readdir_pyx.read_dir
+            return True
+        except ImportError:
+            return False
+
+    def feature_name(self):
+        return 'bzrlib._btree_serializer_c'
+
+ReadDirFeature = _ReadDirFeature()
+
+
 class TestOSUtils(TestCaseInTempDir):
 
     def test_contains_whitespace(self):
@@ -768,6 +782,9 @@
             operator = self.assertNotEqual
         for row in read_result:
             operator(None, row[0])
+
+    def test_compiled_extension_exists(self):
+        self.requireFeature(ReadDirFeature)
         
     def test_walkdirs(self):
         tree = [




More information about the bazaar-commits mailing list