Skip to content

Commit 930e12e

Browse files
committed
Add one more test case
1 parent 77ab121 commit 930e12e

2 files changed

Lines changed: 25 additions & 0 deletions

File tree

Lib/test/datetimetester.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7531,6 +7531,30 @@ def test_gh_151039(self):
75317531
"""
75327532
rc, out, err = script_helper.assert_python_ok("-c", script)
75337533
self.assertEqual(rc, 0)
7534+
self.assertEqual(out, b'')
7535+
self.assertEqual(err, b'')
7536+
7537+
def test_static_type_at_shutdown(self):
7538+
# gh-132413
7539+
script = textwrap.dedent("""
7540+
import _datetime
7541+
timedelta = _datetime.timedelta
7542+
7543+
def gen():
7544+
try:
7545+
yield
7546+
finally:
7547+
# sys.modules is empty
7548+
_datetime.timedelta(days=1)
7549+
timedelta(days=1)
7550+
7551+
it = gen()
7552+
next(it)
7553+
""")
7554+
rc, out, err = script_helper.assert_python_ok("-c", script)
7555+
self.assertEqual(rc, 0)
7556+
self.assertEqual(out, b'')
7557+
self.assertEqual(err, b'')
75347558

75357559

75367560
def load_tests(loader, standard_tests, pattern):

Modules/_datetimemodule.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3032,6 +3032,7 @@ delta_total_seconds(PyObject *op, PyObject *Py_UNUSED(dummy))
30323032
datetime_state *st = GET_CURRENT_STATE(current_mod);
30333033
if (st == NULL) {
30343034
assert(current_mod == NULL);
3035+
Py_DECREF(total_microseconds);
30353036
return NULL;
30363037
}
30373038

0 commit comments

Comments
 (0)