https://github.com/python/cpython/commit/fb46c67d56c16b3235db8a051a0834a146897287
commit: fb46c67d56c16b3235db8a051a0834a146897287
branch: main
author: Victor Stinner <[email protected]>
committer: vstinner <[email protected]>
date: 2026-09-13T20:13:23+02:00
summary:
gh-128509: Add tests on sys._is_immortal() (#157376)
files:
M Lib/test/test_sys.py
diff --git a/Lib/test/test_sys.py b/Lib/test/test_sys.py
index 4308de227a46ce..da1bd381dd182e 100644
--- a/Lib/test/test_sys.py
+++ b/Lib/test/test_sys.py
@@ -1374,6 +1374,37 @@ def test_int_max_str_digits(self):
with self.assertRaises(TypeError):
sys.set_int_max_str_digits(2_048.0)
+ @test.support.cpython_only
+ def test_is_immortal(self):
+ is_immortal = sys._is_immortal
+
+ # Singletons
+ self.assertTrue(is_immortal(None))
+ self.assertTrue(is_immortal(False))
+ self.assertTrue(is_immortal(True))
+ self.assertTrue(is_immortal(0))
+ self.assertTrue(is_immortal(b''))
+ self.assertTrue(is_immortal(''))
+ self.assertTrue(is_immortal(b'x'))
+ self.assertTrue(is_immortal('x'))
+ self.assertTrue(is_immortal(()))
+
+ # Static types
+ self.assertTrue(is_immortal(int))
+ self.assertTrue(is_immortal(dict))
+
+ # Test some mortal objects
+ class PythonType:
+ pass
+ self.assertFalse(is_immortal([1, 2, 3]))
+ self.assertFalse(is_immortal({'key': 5}))
+ self.assertFalse(is_immortal(object()))
+ self.assertFalse(is_immortal(PythonType))
+ self.assertFalse(is_immortal(2 ** 100))
+ # Use encode/decode to get a fresh object
+ self.assertFalse(is_immortal(b'abc'.decode()))
+ self.assertFalse(is_immortal('abc'.encode()))
+
@test.support.cpython_only
@test.support.force_not_colorized_test_class
_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3//lists/python-checkins.python.org
Member address: [email protected]