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