Rev 3195: Add condition_id_in_list and filter_suite_by_id_list capabilities. in file:///v/home/vila/src/bzr/experimental/selftest/

Vincent Ladeuil v.ladeuil+lp at free.fr
Sat Jan 19 10:12:23 GMT 2008


At file:///v/home/vila/src/bzr/experimental/selftest/

------------------------------------------------------------
revno: 3195
revision-id:v.ladeuil+lp at free.fr-20080119101219-gjdsba7mxzyhkjhy
parent: v.ladeuil+lp at free.fr-20080118172031-5npzafmxac8pvq2v
committer: Vincent Ladeuil <v.ladeuil+lp at free.fr>
branch nick: selftest
timestamp: Sat 2008-01-19 11:12:19 +0100
message:
  Add condition_id_in_list and filter_suite_by_id_list capabilities.
  
  * bzrlib/tests/test_selftest.py:
  (TestSelftestFiltering.test_condition_id_in_list,
  TestSelftestFiltering.test_filter_suite_by_id_list): Tests for
  filtering test suite by test id.
  
  * bzrlib/tests/__init__.py:
  (filter_suite_by_id_list, condition_id_in_list): New test
  filtering helpers to select tests by their id.
modified:
  bzrlib/tests/__init__.py       selftest.py-20050531073622-8d0e3c8845c97a64
  bzrlib/tests/test_selftest.py  test_selftest.py-20051202044319-c110a115d8c0456a
-------------- next part --------------
=== modified file 'bzrlib/tests/__init__.py'
--- a/bzrlib/tests/__init__.py	2008-01-18 17:20:31 +0000
+++ b/bzrlib/tests/__init__.py	2008-01-19 10:12:19 +0000
@@ -2261,6 +2261,17 @@
     return condition
 
 
+def condition_id_in_list(name_list):
+    """Create a condition filter which verify that test's id in a list.
+    
+    :param name: A list of test names.
+    :return: A callable that returns True if the test's id appears in the list.
+    """
+    def condition(test):
+        return test.id() in name_list
+    return condition
+
+
 def exclude_tests_by_condition(suite, condition):
     """Create a test suite which excludes some tests from suite.
 
@@ -2324,6 +2335,18 @@
     return result_suite
 
 
+def filter_suite_by_id_list(suite, test_id_list):
+    """Create a test suite by filtering another one.
+
+    :param suite: The source suite.
+    :param test_id_list: A list of the test ids to keep as strings.
+    :returns: the newly created suite
+    """
+    condition = condition_id_in_list(test_id_list)
+    result_suite = filter_suite_by_condition(suite, condition)
+    return result_suite
+
+
 def exclude_tests_by_re(suite, pattern):
     """Create a test suite which excludes some tests from suite.
 

=== modified file 'bzrlib/tests/test_selftest.py'
--- a/bzrlib/tests/test_selftest.py	2008-01-18 17:20:31 +0000
+++ b/bzrlib/tests/test_selftest.py	2008-01-19 10:12:19 +0000
@@ -1683,6 +1683,16 @@
             condition_id_re('test_condition_id_re'))
         self.assertEqual([test_name], self._test_ids(filtered_suite))
 
+    def test_condition_id_in_list(self):
+        test_names = ['bzrlib.tests.test_selftest.TestSelftestFiltering.'
+                      'test_condition_id_in_list']
+        filtered_suite = filter_suite_by_condition(
+            self.suite, tests.condition_id_in_list(test_names))
+        my_pattern = 'TestSelftestFiltering.*test_condition_id_in_list'
+        re_filtered = filter_suite_by_re(self.suite, my_pattern)
+        self.assertEqual(self._test_ids(re_filtered),
+                         self._test_ids(filtered_suite))
+
     def test_condition_isinstance(self):
         filtered_suite = filter_suite_by_condition(self.suite,
             condition_isinstance(self.__class__))
@@ -1728,6 +1738,17 @@
         self.assertEqual(filtered_names, ['bzrlib.tests.test_selftest.'
             'TestSelftestFiltering.test_filter_suite_by_re'])
 
+    def test_filter_suite_by_id_list(self):
+        filtered_suite = tests.filter_suite_by_id_list(
+            self.suite,
+            ['bzrlib.tests.test_selftest.'
+             'TestSelftestFiltering.test_filter_suite_by_id_list'])
+        filtered_names = self._test_ids(filtered_suite)
+        self.assertEqual(
+            filtered_names,
+            ['bzrlib.tests.test_selftest.'
+             'TestSelftestFiltering.test_filter_suite_by_id_list'])
+
     def test_preserve_input(self):
         # NB: Surely this is something in the stdlib to do this?
         self.assertTrue(self.suite is preserve_input(self.suite))



More information about the bazaar-commits mailing list