summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/test_runner/test_discover_runner.py12
-rw-r--r--tests/test_runner_apps/tagged/tests_inheritance.py29
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