Skip to content

Commit 3c6f61e

Browse files
committed
pythongh-120242: Fix handling of [setUp,tearDown]Class in test_datetime
1 parent e6076d1 commit 3c6f61e

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

Lib/test/test_datetime.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,18 +37,24 @@ def load_tests(loader, tests, pattern):
3737
test_classes.extend(type(test) for test in suit)
3838
test_classes = sorted(set(test_classes), key=lambda cls: cls.__qualname__)
3939
for cls in test_classes:
40+
orig_setUpClass = getattr(cls, 'setUpClass', None)
41+
orig_tearDownClass = getattr(cls, 'tearDownClass', None)
4042
cls.__name__ += suffix
4143
cls.__qualname__ += suffix
4244
@classmethod
43-
def setUpClass(cls_, module=module):
45+
def setUpClass(cls_, module=module, orig_setUpClass=orig_setUpClass):
4446
cls_._save_sys_modules = sys.modules.copy()
4547
sys.modules[TESTS] = module
4648
sys.modules['datetime'] = module.datetime_module
4749
if hasattr(module, '_pydatetime'):
4850
sys.modules['_pydatetime'] = module._pydatetime
4951
sys.modules['_strptime'] = module._strptime
52+
if orig_setUpClass is not None:
53+
orig_setUpClass()
5054
@classmethod
51-
def tearDownClass(cls_):
55+
def tearDownClass(cls_, orig_tearDownClass=orig_tearDownClass):
56+
if orig_tearDownClass is not None:
57+
orig_tearDownClass()
5258
sys.modules.clear()
5359
sys.modules.update(cls_._save_sys_modules)
5460
cls.setUpClass = setUpClass

0 commit comments

Comments
 (0)