blob: ded2aa93abecf33702100bcbb1bc21d565c661e5 [file] [log] [blame]
Tim Peters2a799bf2002-12-16 20:18:38 +00001import unittest
Alexander Belopolskycf86e362010-07-23 19:25:47 +00002import sys
3from test.support import import_fresh_module, run_unittest
4TESTS = 'test.datetimetester'
5# XXX: import_fresh_module() is supposed to leave sys.module cache untouched,
6# XXX: but it does not, so we have to save and restore it ourselves.
7save_sys_modules = sys.modules.copy()
8try:
9 pure_tests = import_fresh_module(TESTS, fresh=['datetime', '_strptime'],
10 blocked=['_datetime'])
11 fast_tests = import_fresh_module(TESTS, fresh=['datetime',
12 '_datetime', '_strptime'])
13finally:
14 sys.modules.clear()
15 sys.modules.update(save_sys_modules)
16test_modules = [pure_tests, fast_tests]
17test_suffixes = ["_Pure", "_Fast"]
Tim Peters2a799bf2002-12-16 20:18:38 +000018
Alexander Belopolskycf86e362010-07-23 19:25:47 +000019for module, suffix in zip(test_modules, test_suffixes):
20 for name, cls in module.__dict__.items():
21 if isinstance(cls, type) and issubclass(cls, unittest.TestCase):
22 name += suffix
23 cls.__name__ = name
24 globals()[name] = cls
25 def setUp(self, module=module, setup=cls.setUp):
26 self._save_sys_modules = sys.modules.copy()
27 sys.modules[TESTS] = module
28 sys.modules['datetime'] = module.datetime_module
29 sys.modules['_strptime'] = module._strptime
30 setup(self)
31 def tearDown(self, teardown=cls.tearDown):
32 teardown(self)
33 sys.modules.clear()
34 sys.modules.update(self._save_sys_modules)
35 cls.setUp = setUp
36 cls.tearDown = tearDown
Tim Peters528ca532004-09-16 01:30:50 +000037
Tim Peters2a799bf2002-12-16 20:18:38 +000038def test_main():
Alexander Belopolskycf86e362010-07-23 19:25:47 +000039 run_unittest(__name__)
Tim Peters2a799bf2002-12-16 20:18:38 +000040
41if __name__ == "__main__":
42 test_main()