diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/test_runner/test_discover_runner.py | 12 | ||||
| -rw-r--r-- | tests/test_runner_apps/tagged/tests_inheritance.py | 29 |
2 files changed, 41 insertions, 0 deletions
diff --git a/tests/test_runner/test_discover_runner.py b/tests/test_runner/test_discover_runner.py index d897344d16..5efcbe4f5d 100644 --- a/tests/test_runner/test_discover_runner.py +++ b/tests/test_runner/test_discover_runner.py @@ -198,3 +198,15 @@ class DiscoverRunnerTest(TestCase): self.assertEqual(runner.build_suite(['test_runner_apps.tagged.tests']).countTestCases(), 0) runner = DiscoverRunner(exclude_tags=['slow']) self.assertEqual(runner.build_suite(['test_runner_apps.tagged.tests']).countTestCases(), 0) + + def test_tag_inheritance(self): + def count_tests(**kwargs): + suite = DiscoverRunner(**kwargs).build_suite(['test_runner_apps.tagged.tests_inheritance']) + return suite.countTestCases() + + self.assertEqual(count_tests(tags=['foo']), 4) + self.assertEqual(count_tests(tags=['bar']), 2) + self.assertEqual(count_tests(tags=['baz']), 2) + self.assertEqual(count_tests(tags=['foo'], exclude_tags=['bar']), 2) + self.assertEqual(count_tests(tags=['foo'], exclude_tags=['bar', 'baz']), 1) + self.assertEqual(count_tests(exclude_tags=['foo']), 0) diff --git a/tests/test_runner_apps/tagged/tests_inheritance.py b/tests/test_runner_apps/tagged/tests_inheritance.py new file mode 100644 index 0000000000..59e564202d --- /dev/null +++ b/tests/test_runner_apps/tagged/tests_inheritance.py @@ -0,0 +1,29 @@ +from unittest import TestCase + +from django.test import tag + + +@tag('foo') +class FooBase(TestCase): + pass + + +class Foo(FooBase): + + def test_no_new_tags(self): + pass + + @tag('baz') + def test_new_func_tag(self): + pass + + +@tag('bar') +class FooBar(FooBase): + + def test_new_class_tag_only(self): + pass + + @tag('baz') + def test_new_class_and_func_tags(self): + pass |
