Skip to content

Commit 4911737

Browse files
[3.15] gh-128509: Add tests on sys._is_immortal() (GH-157376) (#157445)
gh-128509: Add tests on sys._is_immortal() (GH-157376) (cherry picked from commit fb46c67) Co-authored-by: Victor Stinner <vstinner@python.org>
1 parent 03c2df3 commit 4911737

1 file changed

Lines changed: 31 additions & 0 deletions

File tree

‎Lib/test/test_sys.py‎

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1445,6 +1445,37 @@ def test_int_max_str_digits(self):
14451445
with self.assertRaises(TypeError):
14461446
sys.set_int_max_str_digits(2_048.0)
14471447

1448+
@test.support.cpython_only
1449+
def test_is_immortal(self):
1450+
is_immortal = sys._is_immortal
1451+
1452+
# Singletons
1453+
self.assertTrue(is_immortal(None))
1454+
self.assertTrue(is_immortal(False))
1455+
self.assertTrue(is_immortal(True))
1456+
self.assertTrue(is_immortal(0))
1457+
self.assertTrue(is_immortal(b''))
1458+
self.assertTrue(is_immortal(''))
1459+
self.assertTrue(is_immortal(b'x'))
1460+
self.assertTrue(is_immortal('x'))
1461+
self.assertTrue(is_immortal(()))
1462+
1463+
# Static types
1464+
self.assertTrue(is_immortal(int))
1465+
self.assertTrue(is_immortal(dict))
1466+
1467+
# Test some mortal objects
1468+
class PythonType:
1469+
pass
1470+
self.assertFalse(is_immortal([1, 2, 3]))
1471+
self.assertFalse(is_immortal({'key': 5}))
1472+
self.assertFalse(is_immortal(object()))
1473+
self.assertFalse(is_immortal(PythonType))
1474+
self.assertFalse(is_immortal(2 ** 100))
1475+
# Use encode/decode to get a fresh object
1476+
self.assertFalse(is_immortal(b'abc'.decode()))
1477+
self.assertFalse(is_immortal('abc'.encode()))
1478+
14481479

14491480
@test.support.cpython_only
14501481
@test.support.force_not_colorized_test_class

0 commit comments

Comments
 (0)