From 18c72d59e0807dae75ac2c34890d08c1e0972d0a Mon Sep 17 00:00:00 2001 From: Simon Charette Date: Mon, 12 Sep 2016 22:06:31 -0400 Subject: Fixed #27214 -- Made skip db features decorators respect wrapping order and inheritance. --- tests/test_utils/tests.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'tests') diff --git a/tests/test_utils/tests.py b/tests/test_utils/tests.py index cd9b723a4e..1fb70e2aa3 100644 --- a/tests/test_utils/tests.py +++ b/tests/test_utils/tests.py @@ -106,20 +106,28 @@ class SkippingClassTestCase(SimpleTestCase): def test_dummy(self): return + @skipUnlessDBFeature("missing") @skipIfDBFeature("__class__") class SkippedTests(unittest.TestCase): def test_will_be_skipped(self): self.fail("We should never arrive here.") + @skipIfDBFeature("__dict__") + class SkippedTestsSubclass(SkippedTests): + pass + test_suite = unittest.TestSuite() test_suite.addTest(NotSkippedTests('test_dummy')) try: test_suite.addTest(SkippedTests('test_will_be_skipped')) + test_suite.addTest(SkippedTestsSubclass('test_will_be_skipped')) except unittest.SkipTest: self.fail("SkipTest should not be raised at this stage") result = unittest.TextTestRunner(stream=six.StringIO()).run(test_suite) - self.assertEqual(result.testsRun, 2) - self.assertEqual(len(result.skipped), 1) + self.assertEqual(result.testsRun, 3) + self.assertEqual(len(result.skipped), 2) + self.assertEqual(result.skipped[0][1], 'Database has feature(s) __class__') + self.assertEqual(result.skipped[1][1], 'Database has feature(s) __class__') @override_settings(ROOT_URLCONF='test_utils.urls') -- cgit v1.3