Skip to content

Commit faba5b7

Browse files
authored
Refs #32355 -- Used addClassCleanup() in SimpleTestCase and SerializeMixin.
1 parent c0e29ce commit faba5b7

File tree

1 file changed

+4
-18
lines changed

1 file changed

+4
-18
lines changed

django/test/testcases.py

Lines changed: 4 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -179,10 +179,13 @@ def setUpClass(cls):
179179
if cls._overridden_settings:
180180
cls._cls_overridden_context = override_settings(**cls._overridden_settings)
181181
cls._cls_overridden_context.enable()
182+
cls.addClassCleanup(cls._cls_overridden_context.disable)
182183
if cls._modified_settings:
183184
cls._cls_modified_context = modify_settings(cls._modified_settings)
184185
cls._cls_modified_context.enable()
186+
cls.addClassCleanup(cls._cls_modified_context.disable)
185187
cls._add_databases_failures()
188+
cls.addClassCleanup(cls._remove_databases_failures)
186189

187190
@classmethod
188191
def _validate_databases(cls):
@@ -227,17 +230,6 @@ def _remove_databases_failures(cls):
227230
method = getattr(connection, name)
228231
setattr(connection, name, method.wrapped)
229232

230-
@classmethod
231-
def tearDownClass(cls):
232-
cls._remove_databases_failures()
233-
if hasattr(cls, '_cls_modified_context'):
234-
cls._cls_modified_context.disable()
235-
delattr(cls, '_cls_modified_context')
236-
if hasattr(cls, '_cls_overridden_context'):
237-
cls._cls_overridden_context.disable()
238-
delattr(cls, '_cls_overridden_context')
239-
super().tearDownClass()
240-
241233
def __call__(self, result=None):
242234
"""
243235
Wrapper around default __call__ method to perform common Django test
@@ -1221,14 +1213,12 @@ def setUpClass(cls):
12211213
call_command('loaddata', *cls.fixtures, **{'verbosity': 0, 'database': db_name})
12221214
except Exception:
12231215
cls._rollback_atomics(cls.cls_atomics)
1224-
cls._remove_databases_failures()
12251216
raise
12261217
pre_attrs = cls.__dict__.copy()
12271218
try:
12281219
cls.setUpTestData()
12291220
except Exception:
12301221
cls._rollback_atomics(cls.cls_atomics)
1231-
cls._remove_databases_failures()
12321222
raise
12331223
for name, value in cls.__dict__.items():
12341224
if value is not pre_attrs.get(name):
@@ -1634,10 +1624,6 @@ def __init_subclass__(cls, /, **kwargs):
16341624
@classmethod
16351625
def setUpClass(cls):
16361626
cls._lockfile = open(cls.lockfile)
1627+
cls.addClassCleanup(cls._lockfile.close)
16371628
locks.lock(cls._lockfile, locks.LOCK_EX)
16381629
super().setUpClass()
1639-
1640-
@classmethod
1641-
def tearDownClass(cls):
1642-
super().tearDownClass()
1643-
cls._lockfile.close()

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy