diff options
| author | Thomas Chaumeny <t.chaumeny@gmail.com> | 2014-10-18 20:03:10 +0200 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2014-11-03 14:14:39 -0500 |
| commit | d89f56dc4d03f6bf6602536b8b62602ec0d46d2f (patch) | |
| tree | ee089210ebb576d286abbe2bee51db042ee6ee48 /tests | |
| parent | 8b77b64f1cf878b100d1d2001c8a73938ea3e1ed (diff) | |
Fixed #21281 -- Made override_settings act at class level when used as a TestCase decorator.
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/cache/tests.py | 5 | ||||
| -rw-r--r-- | tests/file_uploads/tests.py | 4 | ||||
| -rw-r--r-- | tests/mail/tests.py | 2 | ||||
| -rw-r--r-- | tests/servers/tests.py | 15 | ||||
| -rw-r--r-- | tests/settings_tests/tests.py | 10 | ||||
| -rw-r--r-- | tests/utils_tests/test_tzinfo.py | 2 |
6 files changed, 24 insertions, 14 deletions
diff --git a/tests/cache/tests.py b/tests/cache/tests.py index 3ad1979af4..c7604f131e 100644 --- a/tests/cache/tests.py +++ b/tests/cache/tests.py @@ -28,6 +28,7 @@ from django.middleware.csrf import CsrfViewMiddleware from django.template import Template from django.template.response import TemplateResponse from django.test import TestCase, TransactionTestCase, RequestFactory, override_settings +from django.test.signals import setting_changed from django.test.utils import IgnoreDeprecationWarningsMixin from django.utils import six from django.utils import timezone @@ -1144,8 +1145,12 @@ class FileBasedCacheTests(BaseCacheTests, TestCase): def setUp(self): super(FileBasedCacheTests, self).setUp() self.dirname = tempfile.mkdtemp() + # Caches location cannot be modified through override_settings / modify_settings, + # hence settings are manipulated directly here and the setting_changed signal + # is triggered manually. for cache_params in settings.CACHES.values(): cache_params.update({'LOCATION': self.dirname}) + setting_changed.send(self.__class__, setting='CACHES', enter=False) def tearDown(self): super(FileBasedCacheTests, self).tearDown() diff --git a/tests/file_uploads/tests.py b/tests/file_uploads/tests.py index fe1a79fc9f..4fa75415ec 100644 --- a/tests/file_uploads/tests.py +++ b/tests/file_uploads/tests.py @@ -33,12 +33,14 @@ class FileUploadTests(TestCase): @classmethod def setUpClass(cls): + super(FileUploadTests, cls).setUpClass() if not os.path.isdir(MEDIA_ROOT): os.makedirs(MEDIA_ROOT) @classmethod def tearDownClass(cls): shutil.rmtree(MEDIA_ROOT) + super(FileUploadTests, cls).tearDownClass() def test_simple_upload(self): with open(__file__, 'rb') as fp: @@ -494,12 +496,14 @@ class DirectoryCreationTests(TestCase): """ @classmethod def setUpClass(cls): + super(DirectoryCreationTests, cls).setUpClass() if not os.path.isdir(MEDIA_ROOT): os.makedirs(MEDIA_ROOT) @classmethod def tearDownClass(cls): shutil.rmtree(MEDIA_ROOT) + super(DirectoryCreationTests, cls).tearDownClass() def setUp(self): self.obj = FileModel() diff --git a/tests/mail/tests.py b/tests/mail/tests.py index a6184bd767..9431077e06 100644 --- a/tests/mail/tests.py +++ b/tests/mail/tests.py @@ -855,6 +855,7 @@ class SMTPBackendTests(BaseEmailBackendTests, SimpleTestCase): @classmethod def setUpClass(cls): + super(SMTPBackendTests, cls).setUpClass() cls.server = FakeSMTPServer(('127.0.0.1', 0), None) cls._settings_override = override_settings( EMAIL_HOST="127.0.0.1", @@ -866,6 +867,7 @@ class SMTPBackendTests(BaseEmailBackendTests, SimpleTestCase): def tearDownClass(cls): cls._settings_override.disable() cls.server.stop() + super(SMTPBackendTests, cls).tearDownClass() def setUp(self): super(SMTPBackendTests, self).setUp() diff --git a/tests/servers/tests.py b/tests/servers/tests.py index 2331a0ddce..50b2cafe1a 100644 --- a/tests/servers/tests.py +++ b/tests/servers/tests.py @@ -27,7 +27,7 @@ TEST_SETTINGS = { } -@override_settings(ROOT_URLCONF='servers.urls') +@override_settings(ROOT_URLCONF='servers.urls', **TEST_SETTINGS) class LiveServerBase(LiveServerTestCase): available_apps = [ @@ -38,19 +38,6 @@ class LiveServerBase(LiveServerTestCase): ] fixtures = ['testdata.json'] - @classmethod - def setUpClass(cls): - # Override settings - cls.settings_override = override_settings(**TEST_SETTINGS) - cls.settings_override.enable() - super(LiveServerBase, cls).setUpClass() - - @classmethod - def tearDownClass(cls): - # Restore original settings - cls.settings_override.disable() - super(LiveServerBase, cls).tearDownClass() - def urlopen(self, url): return urlopen(self.live_server_url + url) diff --git a/tests/settings_tests/tests.py b/tests/settings_tests/tests.py index c679962a99..64f99fc859 100644 --- a/tests/settings_tests/tests.py +++ b/tests/settings_tests/tests.py @@ -106,9 +106,19 @@ class ClassDecoratedTestCaseSuper(TestCase): @override_settings(TEST='override') class ClassDecoratedTestCase(ClassDecoratedTestCaseSuper): + + @classmethod + def setUpClass(cls): + super(cls, ClassDecoratedTestCase).setUpClass() + cls.foo = getattr(settings, 'TEST', 'BUG') + def test_override(self): self.assertEqual(settings.TEST, 'override') + def test_setupclass_override(self): + """Test that settings are overriden within setUpClass -- refs #21281""" + self.assertEqual(self.foo, 'override') + @override_settings(TEST='override2') def test_method_override(self): self.assertEqual(settings.TEST, 'override2') diff --git a/tests/utils_tests/test_tzinfo.py b/tests/utils_tests/test_tzinfo.py index 1b007f5f76..4d1af62f0a 100644 --- a/tests/utils_tests/test_tzinfo.py +++ b/tests/utils_tests/test_tzinfo.py @@ -20,6 +20,7 @@ class TzinfoTests(IgnoreDeprecationWarningsMixin, unittest.TestCase): @classmethod def setUpClass(cls): + super(TzinfoTests, cls).setUpClass() cls.old_TZ = os.environ.get('TZ') os.environ['TZ'] = 'US/Eastern' @@ -41,6 +42,7 @@ class TzinfoTests(IgnoreDeprecationWarningsMixin, unittest.TestCase): # Cleanup - force re-evaluation of TZ environment variable. if cls.tz_tests: time.tzset() + super(TzinfoTests, cls).tearDownClass() def test_fixedoffset(self): self.assertEqual(repr(FixedOffset(0)), '+0000') |
