Skip to content

Commit 56f8a06

Browse files
authored
Add tests
1 parent 2f8535b commit 56f8a06

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

Lib/test/datetimetester.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7294,6 +7294,32 @@ def gen():
72947294
res = script_helper.assert_python_ok('-c', script)
72957295
self.assertFalse(res.err)
72967296

7297+
def test_module_free(self):
7298+
script = textwrap.dedent("""
7299+
import sys
7300+
import gc
7301+
import weakref
7302+
ws = weakref.WeakSet()
7303+
for _ in range(3):
7304+
import _datetime
7305+
ws.add(_datetime)
7306+
del sys.modules["_datetime"]
7307+
del _datetime
7308+
gc.collect()
7309+
assert len(ws) == 0
7310+
""")
7311+
res = script_helper.assert_python_ok('-c', script)
7312+
self.assertFalse(res.err)
7313+
7314+
@unittest.skipIf(not support.Py_DEBUG, "Debug builds only")
7315+
def test_no_leak(self):
7316+
script = textwrap.dedent("""
7317+
import datetime
7318+
datetime.datetime.strptime('20000101', '%Y%m%d').strftime('%Y%m%d')
7319+
""")
7320+
res = script_helper.assert_python_ok('-X', 'showrefcount', '-c', script)
7321+
self.assertIn(b'[0 refs, 0 blocks]', res.err)
7322+
72977323

72987324
def load_tests(loader, standard_tests, pattern):
72997325
standard_tests.addTest(ZoneInfoCompleteTest())

0 commit comments

Comments
 (0)