diff --git a/django/test/simple.py b/django/test/simple.py index 874cfdff39..019eff2421 100644 --- a/django/test/simple.py +++ b/django/test/simple.py @@ -12,6 +12,8 @@ from django.db.models import get_app, get_apps from django.test import _doctest as doctest from django.test import runner from django.test.utils import compare_xml, strip_quotes +# django.utils.unittest is deprecated, but so is django.test.simple, +# and the latter will be removed before the former. from django.utils import unittest from django.utils.importlib import import_module from django.utils.module_loading import module_has_submodule diff --git a/django/test/utils.py b/django/test/utils.py index 6be9070009..70ce640239 100644 --- a/django/test/utils.py +++ b/django/test/utils.py @@ -377,13 +377,14 @@ class CaptureQueriesContext(object): class IgnoreDeprecationWarningsMixin(object): - warning_class = DeprecationWarning + warning_classes = [DeprecationWarning] def setUp(self): super(IgnoreDeprecationWarningsMixin, self).setUp() self.catch_warnings = warnings.catch_warnings() self.catch_warnings.__enter__() - warnings.filterwarnings("ignore", category=self.warning_class) + for warning_class in self.warning_classes: + warnings.filterwarnings("ignore", category=warning_class) def tearDown(self): self.catch_warnings.__exit__(*sys.exc_info()) @@ -392,7 +393,12 @@ class IgnoreDeprecationWarningsMixin(object): class IgnorePendingDeprecationWarningsMixin(IgnoreDeprecationWarningsMixin): - warning_class = PendingDeprecationWarning + warning_classes = [PendingDeprecationWarning] + + +class IgnoreAllDeprecationWarningsMixin(IgnoreDeprecationWarningsMixin): + + warning_classes = [PendingDeprecationWarning, DeprecationWarning] @contextmanager diff --git a/tests/test_discovery_sample/tests_sample.py b/tests/test_discovery_sample/tests_sample.py index c541bc4cd6..fb1e14c715 100644 --- a/tests/test_discovery_sample/tests_sample.py +++ b/tests/test_discovery_sample/tests_sample.py @@ -1,16 +1,9 @@ -from unittest import TestCase as UnitTestCase +from unittest import TestCase from django.test import TestCase as DjangoTestCase -from django.utils.unittest import TestCase as UT2TestCase -class TestVanillaUnittest(UnitTestCase): - - def test_sample(self): - self.assertEqual(1, 1) - - -class TestUnittest2(UT2TestCase): +class TestVanillaUnittest(TestCase): def test_sample(self): self.assertEqual(1, 1) diff --git a/tests/test_runner/test_discover_runner.py b/tests/test_runner/test_discover_runner.py index b4f04e8bb0..4494b2bd3b 100644 --- a/tests/test_runner/test_discover_runner.py +++ b/tests/test_runner/test_discover_runner.py @@ -6,11 +6,6 @@ from unittest import expectedFailure from django.test import TestCase from django.test.runner import DiscoverRunner -try: - import unittest2 -except ImportError: - unittest2 = None - def expectedFailureIf(condition): """Marks a test as an expected failure if ``condition`` is met.""" @@ -26,7 +21,7 @@ class DiscoverRunnerTest(TestCase): ["test_discovery_sample.tests_sample"], ).countTestCases() - self.assertEqual(count, 3) + self.assertEqual(count, 2) def test_dotted_test_class_vanilla_unittest(self): count = DiscoverRunner().build_suite( @@ -35,13 +30,6 @@ class DiscoverRunnerTest(TestCase): self.assertEqual(count, 1) - def test_dotted_test_class_unittest2(self): - count = DiscoverRunner().build_suite( - ["test_discovery_sample.tests_sample.TestUnittest2"], - ).countTestCases() - - self.assertEqual(count, 1) - def test_dotted_test_class_django_testcase(self): count = DiscoverRunner().build_suite( ["test_discovery_sample.tests_sample.TestDjangoTestCase"], @@ -49,23 +37,6 @@ class DiscoverRunnerTest(TestCase): self.assertEqual(count, 1) - # this test fails if unittest2 is installed from PyPI on Python 2.6 - # refs https://code.djangoproject.com/ticket/20437 - @expectedFailureIf(sys.version_info < (2, 7) and unittest2) - def test_dotted_test_method_vanilla_unittest(self): - count = DiscoverRunner().build_suite( - ["test_discovery_sample.tests_sample.TestVanillaUnittest.test_sample"], - ).countTestCases() - - self.assertEqual(count, 1) - - def test_dotted_test_method_unittest2(self): - count = DiscoverRunner().build_suite( - ["test_discovery_sample.tests_sample.TestUnittest2.test_sample"], - ).countTestCases() - - self.assertEqual(count, 1) - def test_dotted_test_method_django_testcase(self): count = DiscoverRunner().build_suite( ["test_discovery_sample.tests_sample.TestDjangoTestCase.test_sample"], @@ -96,4 +67,4 @@ class DiscoverRunnerTest(TestCase): ["test_discovery_sample/"], ).countTestCases() - self.assertEqual(count, 4) + self.assertEqual(count, 3) diff --git a/tests/test_runner/tests.py b/tests/test_runner/tests.py index 28ae0833c9..4e9e44bc12 100644 --- a/tests/test_runner/tests.py +++ b/tests/test_runner/tests.py @@ -12,7 +12,7 @@ from django.core.management import call_command from django import db from django.test import runner, TestCase, TransactionTestCase, skipUnlessDBFeature from django.test.testcases import connections_support_transactions -from django.test.utils import IgnoreDeprecationWarningsMixin +from django.test.utils import IgnoreAllDeprecationWarningsMixin from django.utils.importlib import import_module from admin_scripts.tests import AdminScriptTestCase @@ -225,7 +225,8 @@ class Ticket17477RegressionTests(AdminScriptTestCase): self.assertNoOutput(err) -class ModulesTestsPackages(IgnoreDeprecationWarningsMixin, unittest.TestCase): +class ModulesTestsPackages(IgnoreAllDeprecationWarningsMixin, unittest.TestCase): + def test_get_tests(self): "Check that the get_tests helper function can find tests in a directory" from django.test.simple import get_tests diff --git a/tests/test_suite_override/tests.py b/tests/test_suite_override/tests.py index e647c02d76..e69dab12bf 100644 --- a/tests/test_suite_override/tests.py +++ b/tests/test_suite_override/tests.py @@ -1,7 +1,7 @@ import unittest from django.db.models import get_app -from django.test.utils import IgnoreDeprecationWarningsMixin +from django.test.utils import IgnoreAllDeprecationWarningsMixin def suite(): @@ -10,7 +10,8 @@ def suite(): return testSuite -class SuiteOverrideTest(IgnoreDeprecationWarningsMixin, unittest.TestCase): +class SuiteOverrideTest(IgnoreAllDeprecationWarningsMixin, unittest.TestCase): + def test_suite_override(self): """ Validate that you can define a custom suite when running tests with diff --git a/tests/test_utils/tests.py b/tests/test_utils/tests.py index 775a4a7c11..2c2bc24d72 100644 --- a/tests/test_utils/tests.py +++ b/tests/test_utils/tests.py @@ -10,7 +10,7 @@ from django.http import HttpResponse from django.template.loader import render_to_string from django.test import SimpleTestCase, TestCase, skipUnlessDBFeature from django.test.html import HTMLParseError, parse_html -from django.test.utils import CaptureQueriesContext, IgnoreDeprecationWarningsMixin +from django.test.utils import CaptureQueriesContext, IgnoreAllDeprecationWarningsMixin from django.utils import six from .models import Person @@ -592,7 +592,7 @@ class AssertFieldOutputTests(SimpleTestCase): self.assertFieldOutput(MyCustomField, {}, {}, empty_value=None) -class DoctestNormalizerTest(IgnoreDeprecationWarningsMixin, SimpleTestCase): +class DoctestNormalizerTest(IgnoreAllDeprecationWarningsMixin, SimpleTestCase): def test_normalizer(self): from django.test.simple import make_doctest