diff options
Diffstat (limited to 'lib/testtools/testtools/tests/test_testsuite.py')
-rw-r--r-- | lib/testtools/testtools/tests/test_testsuite.py | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/lib/testtools/testtools/tests/test_testsuite.py b/lib/testtools/testtools/tests/test_testsuite.py index 426bec4cc4..3fc837c701 100644 --- a/lib/testtools/testtools/tests/test_testsuite.py +++ b/lib/testtools/testtools/tests/test_testsuite.py @@ -9,10 +9,11 @@ import unittest from testtools import ( ConcurrentTestSuite, iterate_tests, + PlaceHolder, TestCase, ) from testtools.helpers import try_import -from testtools.testsuite import FixtureSuite +from testtools.testsuite import FixtureSuite, iterate_tests, sorted_tests from testtools.tests.helpers import LoggingResult FunctionFixture = try_import('fixtures.FunctionFixture') @@ -93,6 +94,35 @@ class TestFixtureSuite(TestCase): self.assertEqual(['setUp', 1, 2, 'tearDown'], log) +class TestSortedTests(TestCase): + + def test_sorts_custom_suites(self): + a = PlaceHolder('a') + b = PlaceHolder('b') + class Subclass(unittest.TestSuite): + def sort_tests(self): + self._tests = sorted_tests(self, True) + input_suite = Subclass([b, a]) + suite = sorted_tests(input_suite) + self.assertEqual([a, b], list(iterate_tests(suite))) + self.assertEqual([input_suite], list(iter(suite))) + + def test_custom_suite_without_sort_tests_works(self): + a = PlaceHolder('a') + b = PlaceHolder('b') + class Subclass(unittest.TestSuite):pass + input_suite = Subclass([b, a]) + suite = sorted_tests(input_suite) + self.assertEqual([b, a], list(iterate_tests(suite))) + self.assertEqual([input_suite], list(iter(suite))) + + def test_sorts_simple_suites(self): + a = PlaceHolder('a') + b = PlaceHolder('b') + suite = sorted_tests(unittest.TestSuite([b, a])) + self.assertEqual([a, b], list(iterate_tests(suite))) + + def test_suite(): from unittest import TestLoader return TestLoader().loadTestsFromName(__name__) |