From a08fda2111d811aa53f11218fa03f3300dfff4cb Mon Sep 17 00:00:00 2001 From: Simon Charette Date: Tue, 17 Nov 2015 00:39:28 -0500 Subject: Fixed #25746 -- Isolated inlined test models registration. Thanks to Tim for the review. --- .../test_model_field_deprecation.py | 9 ++++---- tests/check_framework/test_multi_db.py | 7 +++--- tests/check_framework/tests.py | 27 +++++++--------------- 3 files changed, 16 insertions(+), 27 deletions(-) (limited to 'tests/check_framework') diff --git a/tests/check_framework/test_model_field_deprecation.py b/tests/check_framework/test_model_field_deprecation.py index ce30803a61..21ece86bd4 100644 --- a/tests/check_framework/test_model_field_deprecation.py +++ b/tests/check_framework/test_model_field_deprecation.py @@ -1,11 +1,11 @@ from django.core import checks from django.db import models from django.test import SimpleTestCase +from django.test.utils import isolate_apps -from .tests import IsolateModelsMixin - -class TestDeprecatedField(IsolateModelsMixin, SimpleTestCase): +@isolate_apps('check_framework') +class TestDeprecatedField(SimpleTestCase): def test_default_details(self): class MyField(models.Field): system_check_deprecated_details = {} @@ -45,7 +45,8 @@ class TestDeprecatedField(IsolateModelsMixin, SimpleTestCase): ]) -class TestRemovedField(IsolateModelsMixin, SimpleTestCase): +@isolate_apps('check_framework') +class TestRemovedField(SimpleTestCase): def test_default_details(self): class MyField(models.Field): system_check_removed_details = {} diff --git a/tests/check_framework/test_multi_db.py b/tests/check_framework/test_multi_db.py index 168b2ea33f..bfbeab0029 100644 --- a/tests/check_framework/test_multi_db.py +++ b/tests/check_framework/test_multi_db.py @@ -1,8 +1,6 @@ from django.db import connections, models from django.test import TestCase, mock -from django.test.utils import override_settings - -from .tests import IsolateModelsMixin +from django.test.utils import isolate_apps, override_settings class TestRouter(object): @@ -14,7 +12,8 @@ class TestRouter(object): @override_settings(DATABASE_ROUTERS=[TestRouter()]) -class TestMultiDBChecks(IsolateModelsMixin, TestCase): +@isolate_apps('check_framework') +class TestMultiDBChecks(TestCase): multi_db = True def _patch_check_field_on(self, db): diff --git a/tests/check_framework/tests.py b/tests/check_framework/tests.py index 7ae7b633e0..90b8a944f0 100644 --- a/tests/check_framework/tests.py +++ b/tests/check_framework/tests.py @@ -11,7 +11,9 @@ from django.core.management import call_command from django.core.management.base import CommandError from django.db import models from django.test import SimpleTestCase -from django.test.utils import override_settings, override_system_checks +from django.test.utils import ( + isolate_apps, override_settings, override_system_checks, +) from django.utils.encoding import force_text from django.utils.six import StringIO @@ -254,23 +256,10 @@ class SilencingCheckTests(SimpleTestCase): self.assertEqual(err.getvalue(), '') -class IsolateModelsMixin(object): - def setUp(self): - self.current_models = apps.all_models[__package__] - self.saved_models = set(self.current_models) - - def tearDown(self): - for model in (set(self.current_models) - self.saved_models): - del self.current_models[model] - apps.clear_cache() - - -class CheckFrameworkReservedNamesTests(IsolateModelsMixin, SimpleTestCase): - @override_settings( - SILENCED_SYSTEM_CHECKS=['models.E20', 'fields.W342'], # ForeignKey(unique=True) - INSTALLED_APPS=['django.contrib.auth', 'django.contrib.contenttypes', 'check_framework'] - ) - def test_model_check_method_not_shadowed(self): +class CheckFrameworkReservedNamesTests(SimpleTestCase): + @isolate_apps('check_framework', kwarg_name='apps') + @override_system_checks([checks.model_checks.check_all_models]) + def test_model_check_method_not_shadowed(self, apps): class ModelWithAttributeCalledCheck(models.Model): check = 42 @@ -288,7 +277,7 @@ class CheckFrameworkReservedNamesTests(IsolateModelsMixin, SimpleTestCase): related_name='check', ) - errors = checks.run_checks() + errors = checks.run_checks(app_configs=apps.get_app_configs()) expected = [ Error( "The 'ModelWithAttributeCalledCheck.check()' class method is " -- cgit v1.3