22import sys
33import functools
44
5- from test .support .import_helper import import_fresh_module , import_module
6-
5+ from test .support .import_helper import import_fresh_module
76
87TESTS = 'test.datetimetester'
98
@@ -14,28 +13,26 @@ def load_tests(loader, tests, pattern):
1413 fresh = ['datetime' , '_pydatetime' , '_strptime' ],
1514 blocked = ['_datetime' ],
1615 )
17- fast_tests = None
1816 try :
19- import_module ('_datetime' )
17+ import _datetime
18+ has_datetime = True
2019 except ImportError :
21- fast_tests = None
22- else :
23- fast_tests = import_fresh_module (
24- TESTS ,
25- fresh = ['datetime' , '_strptime' ],
26- blocked = ['_pydatetime' ],
27- )
20+ has_datetime = False
21+
22+ fast_tests = import_fresh_module (
23+ TESTS ,
24+ fresh = ['datetime' , '_strptime' ],
25+ blocked = ['_pydatetime' ],
26+ )
2827 finally :
2928 # XXX: import_fresh_module() is supposed to leave sys.module cache untouched,
3029 # XXX: but it does not, so we have to cleanup ourselves.
3130 for modname in ['datetime' , '_datetime' , '_pydatetime' , '_strptime' ]:
3231 sys .modules .pop (modname , None )
3332
34- test_modules = [pure_tests ]
35- test_suffixes = ["_Pure" ]
36- if fast_tests is not None :
37- test_modules .append (fast_tests )
38- test_suffixes .append ("_Fast" )
33+ test_modules = [pure_tests , fast_tests ]
34+ test_suffixes = ["_Pure" , "_Fast" ]
35+
3936 # XXX(gb) First run all the _Pure tests, then all the _Fast tests. You might
4037 # not believe this, but in spite of all the sys.modules trickery running a _Pure
4138 # test last will leave a mix of pure and native datetime stuff lying around.
@@ -58,6 +55,9 @@ def load_tests(loader, tests, pattern):
5855 class Wrapper (cls ):
5956 @classmethod
6057 def setUpClass (cls_ , module = module ):
58+ if suffix == "_Fast" and not has_datetime :
59+ raise unittest .SkipTest ("requires _datetime module" )
60+
6161 cls_ ._save_sys_modules = sys .modules .copy ()
6262 sys .modules [TESTS ] = module
6363 sys .modules ['datetime' ] = module .datetime_module
0 commit comments