From df22dbcebad5bab5bc0cd26eb1ea2909fcdbbf03 Mon Sep 17 00:00:00 2001 From: VanshAgarwal24036 Date: Sun, 18 Jan 2026 19:08:55 +0530 Subject: [PATCH 1/2] gh-143959: Split datetime tests requiring _datetime --- Lib/test/test_datetime.py | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/Lib/test/test_datetime.py b/Lib/test/test_datetime.py index 005187f13e665f..bfdbed63fe886e 100644 --- a/Lib/test/test_datetime.py +++ b/Lib/test/test_datetime.py @@ -2,6 +2,7 @@ import sys import functools +from test import support from test.support.import_helper import import_fresh_module @@ -12,17 +13,24 @@ def load_tests(loader, tests, pattern): pure_tests = import_fresh_module(TESTS, fresh=['datetime', '_pydatetime', '_strptime'], blocked=['_datetime']) - fast_tests = import_fresh_module(TESTS, - fresh=['datetime', '_strptime'], - blocked=['_pydatetime']) + fast_tests = None + if support.import_module('_datetime', required=False): + fast_tests = import_fresh_module( + TESTS, + fresh=['datetime', '_strptime'], + blocked=['_pydatetime'], + ) 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"] + test_modules = [pure_tests] + test_suffixes = ["_Pure"] + if fast_tests is not None: + test_modules.append(fast_tests) + test_suffixes.append("_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. From 3b42bcd402820b8b573ed061bd2f599aa96eec01 Mon Sep 17 00:00:00 2001 From: VanshAgarwal24036 Date: Sun, 18 Jan 2026 23:12:53 +0530 Subject: [PATCH 2/2] gh-143959: Split datetime tests requiring _datetime --- Lib/test/test_datetime.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/Lib/test/test_datetime.py b/Lib/test/test_datetime.py index bfdbed63fe886e..e2602f92b662ce 100644 --- a/Lib/test/test_datetime.py +++ b/Lib/test/test_datetime.py @@ -2,19 +2,24 @@ import sys import functools -from test import support -from test.support.import_helper import import_fresh_module +from test.support.import_helper import import_fresh_module, import_module TESTS = 'test.datetimetester' def load_tests(loader, tests, pattern): try: - pure_tests = import_fresh_module(TESTS, - fresh=['datetime', '_pydatetime', '_strptime'], - blocked=['_datetime']) + pure_tests = import_fresh_module( + TESTS, + fresh=['datetime', '_pydatetime', '_strptime'], + blocked=['_datetime'], + ) fast_tests = None - if support.import_module('_datetime', required=False): + try: + import_module('_datetime') + except ImportError: + fast_tests = None + else: fast_tests = import_fresh_module( TESTS, fresh=['datetime', '_strptime'],