mirror of
https://github.com/python/cpython.git
synced 2025-08-03 00:23:06 +00:00
[3.13] gh-117398: Add multiphase support to _datetime (gh-119694)
This is an unrevert ofd58ebf0
(gh-119636), which was reverted by9216a53
(gh-119639) due to problems which have been resolved. This is minimal support for multiphase init. Subinterpreters are not supported yet. That will be addressed in a later change. (cherry picked from commit3e8b609
) Co-authored-by: Erlend E. Aasland erlend@python.org
This commit is contained in:
parent
a7aa7c41eb
commit
af57832e63
2 changed files with 31 additions and 15 deletions
|
@ -47,6 +47,25 @@ except ImportError:
|
|||
pass
|
||||
#
|
||||
|
||||
# This is copied from test_import/__init__.py.
|
||||
def no_rerun(reason):
|
||||
"""Skip rerunning for a particular test.
|
||||
|
||||
WARNING: Use this decorator with care; skipping rerunning makes it
|
||||
impossible to find reference leaks. Provide a clear reason for skipping the
|
||||
test using the 'reason' parameter.
|
||||
"""
|
||||
def deco(func):
|
||||
_has_run = False
|
||||
def wrapper(self):
|
||||
nonlocal _has_run
|
||||
if _has_run:
|
||||
self.skipTest(reason)
|
||||
func(self)
|
||||
_has_run = True
|
||||
return wrapper
|
||||
return deco
|
||||
|
||||
pickle_loads = {pickle.loads, pickle._loads}
|
||||
|
||||
pickle_choices = [(pickle, pickle, proto)
|
||||
|
@ -6383,6 +6402,7 @@ class IranTest(ZoneInfoTest):
|
|||
|
||||
|
||||
@unittest.skipIf(_testcapi is None, 'need _testcapi module')
|
||||
@no_rerun("the encapsulated datetime C API does not support reloading")
|
||||
class CapiTest(unittest.TestCase):
|
||||
def setUp(self):
|
||||
# Since the C API is not present in the _Pure tests, skip all tests
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue