Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion Lib/test/datetimetester.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,11 @@
try:
import _pydatetime
except ImportError:
pass
_pydatetime = None
try:
import _datetime
except ImportError:
_datetime = None
#

pickle_loads = {pickle.loads, pickle._loads}
Expand Down
9 changes: 6 additions & 3 deletions Lib/test/test_datetime.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,16 +18,19 @@ def load_tests(loader, tests, pattern):
finally:
# XXX: import_fresh_module() is supposed to leave sys.module cache untouched,
# XXX: but it does not, so we have to cleanup ourselves.
for modname in ['datetime', '_datetime', '_strptime']:
for modname in ['datetime', '_datetime', '_pydatetime', '_strptime']:
sys.modules.pop(modname, None)

test_modules = [pure_tests, fast_tests]
test_suffixes = ["_Pure", "_Fast"]

# XXX(gb) First run all the _Pure tests, then all the _Fast tests. You might
# not believe this, but in spite of all the sys.modules trickery running a _Pure
# test last will leave a mix of pure and native datetime stuff lying around.
for module, suffix in zip(test_modules, test_suffixes):
test_classes = []
if module is None:
continue
for name, cls in module.__dict__.items():
if not isinstance(cls, type):
continue
Expand All @@ -48,8 +51,8 @@ def setUpClass(cls_, module=module):
cls_._save_sys_modules = sys.modules.copy()
sys.modules[TESTS] = module
sys.modules['datetime'] = module.datetime_module
if hasattr(module, '_pydatetime'):
sys.modules['_pydatetime'] = module._pydatetime
sys.modules['_pydatetime'] = module._pydatetime
sys.modules['_datetime'] = module._datetime
sys.modules['_strptime'] = module._strptime
super().setUpClass()

Expand Down
Loading