diff options
| author | Chris Jerdonek <chris.jerdonek@gmail.com> | 2021-03-26 05:14:43 -0700 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2021-03-30 10:26:20 +0200 |
| commit | 038940cf5525c41464a1b9e9ba3801042320b0cc (patch) | |
| tree | 0972792e73a02a8b60ff86c22aa7cab46b956390 /tests/test_runner | |
| parent | 7c08f26bf0439c1ed593b51b51ad847f7e262bc1 (diff) | |
Fixed #29127 -- Prevented DiscoverRunner from hiding tagged test with syntax errors.
This mades _FailedTest objects always match tags in DiscoverRunner.
Diffstat (limited to 'tests/test_runner')
| -rw-r--r-- | tests/test_runner/test_discover_runner.py | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/tests/test_runner/test_discover_runner.py b/tests/test_runner/test_discover_runner.py index 366d180aa5..6b19f2f274 100644 --- a/tests/test_runner/test_discover_runner.py +++ b/tests/test_runner/test_discover_runner.py @@ -2,6 +2,7 @@ import os import unittest.loader from argparse import ArgumentParser from contextlib import contextmanager +from importlib import import_module from unittest import TestSuite, TextTestRunner, defaultTestLoader, mock from django.db import connections @@ -259,6 +260,18 @@ class DiscoverRunnerTests(SimpleTestCase): self.assertEqual(count_tests(tags=['foo'], exclude_tags=['bar', 'baz']), 1) self.assertEqual(count_tests(exclude_tags=['foo']), 0) + def test_tag_fail_to_load(self): + with self.assertRaises(SyntaxError): + import_module('test_runner_apps.tagged.tests_syntax_error') + runner = DiscoverRunner(tags=['syntax_error']) + # A label that doesn't exist or cannot be loaded due to syntax errors + # is always considered matching. + suite = runner.build_suite(['doesnotexist', 'test_runner_apps.tagged']) + self.assertEqual([test.id() for test in suite], [ + 'unittest.loader._FailedTest.doesnotexist', + 'unittest.loader._FailedTest.test_runner_apps.tagged.tests_syntax_error', + ]) + def test_included_tags_displayed(self): runner = DiscoverRunner(tags=['foo', 'bar'], verbosity=2) with captured_stdout() as stdout: |
