Thanks to visit codestin.com
Credit goes to github.com

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)