Rev 2929: * New helper function ``bzrlib.tests.condition_isinstance`` which helps in http://people.ubuntu.com/~robertc/baz2.0/in-module-parameterisation
Robert Collins
robertc at robertcollins.net
Sun Oct 21 03:20:03 BST 2007
At http://people.ubuntu.com/~robertc/baz2.0/in-module-parameterisation
------------------------------------------------------------
revno: 2929
revision-id: robertc at robertcollins.net-20071021021936-jlz4q3xd60fc84z8
parent: robertc at robertcollins.net-20071021020852-1o0jfwqhyb04fp0f
committer: Robert Collins <robertc at robertcollins.net>
branch nick: in-module-parameterisation
timestamp: Sun 2007-10-21 12:19:36 +1000
message:
* New helper function ``bzrlib.tests.condition_isinstance`` which helps
filter tests based on class. (Robert Collins)
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/tests/__init__.py selftest.py-20050531073622-8d0e3c8845c97a64
bzrlib/tests/test_selftest.py test_selftest.py-20051202044319-c110a115d8c0456a
=== modified file 'NEWS'
--- a/NEWS 2007-10-21 02:08:52 +0000
+++ b/NEWS 2007-10-21 02:19:36 +0000
@@ -263,6 +263,9 @@
TESTING:
+ * New helper function ``bzrlib.tests.condition_isinstance`` which helps
+ filter tests based on class. (Robert Collins)
+
* New helper function ``bzrlib.tests.filter_suite_by_condition`` which
generalises the ``filter_suite_by_re`` function. (Robert Collins)
=== modified file 'bzrlib/tests/__init__.py'
--- a/bzrlib/tests/__init__.py 2007-10-21 02:08:52 +0000
+++ b/bzrlib/tests/__init__.py 2007-10-21 02:19:36 +0000
@@ -2197,6 +2197,17 @@
self.transport_readonly_server = HttpServer
+def condition_isinstance(klass_or_klass_list):
+ """Create a condition filter which returns isinstance(param, klass).
+
+ :return: A callable which when called with one parameter obj return the
+ result of isinstance(obj, klass_or_klass_list).
+ """
+ def condition(obj):
+ return isinstance(obj, klass_or_klass_list)
+ return condition
+
+
def filter_suite_by_condition(suite, condition):
"""Create a test suite by filtering another one.
=== modified file 'bzrlib/tests/test_selftest.py'
--- a/bzrlib/tests/test_selftest.py 2007-10-21 02:08:52 +0000
+++ b/bzrlib/tests/test_selftest.py 2007-10-21 02:19:36 +0000
@@ -55,6 +55,7 @@
TestUtil,
TextTestRunner,
UnavailableFeature,
+ condition_isinstance,
exclude_tests_by_re,
filter_suite_by_condition,
filter_suite_by_re,
@@ -1656,6 +1657,14 @@
"""Get the ids for the tests in a test suite."""
return [t.id() for t in iter_suite_tests(test_suite)]
+ def test_condition_isinstance(self):
+ filtered_suite = filter_suite_by_condition(self.suite,
+ condition_isinstance(self.__class__))
+ class_pattern = 'bzrlib.tests.test_selftest.TestSelftestFiltering.'
+ re_filtered = filter_suite_by_re(self.suite, class_pattern)
+ self.assertEqual(self._test_ids(re_filtered),
+ self._test_ids(filtered_suite))
+
def test_exclude_tests_by_re(self):
self.all_names = self._test_ids(self.suite)
filtered_suite = exclude_tests_by_re(self.suite, 'exclude_tests_by_re')
More information about the bazaar-commits
mailing list