Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit fb46c67

Browse files
authored
gh-128509: Add tests on sys._is_immortal() (#157376)
1 parent da5a155 commit fb46c67

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
@@ -1374,6 +1374,37 @@ def test_int_max_str_digits(self):
13741374
with self.assertRaises(TypeError):
13751375
sys.set_int_max_str_digits(2_048.0)
13761376

1377+
@test.support.cpython_only
1378+
def test_is_immortal(self):
1379+
is_immortal = sys._is_immortal
1380+
1381+
# Singletons
1382+
self.assertTrue(is_immortal(None))
1383+
self.assertTrue(is_immortal(False))
1384+
self.assertTrue(is_immortal(True))
1385+
self.assertTrue(is_immortal(0))
1386+
self.assertTrue(is_immortal(b''))
1387+
self.assertTrue(is_immortal(''))
1388+
self.assertTrue(is_immortal(b'x'))
1389+
self.assertTrue(is_immortal('x'))
1390+
self.assertTrue(is_immortal(()))
1391+
1392+
# Static types
1393+
self.assertTrue(is_immortal(int))
1394+
self.assertTrue(is_immortal(dict))
1395+
1396+
# Test some mortal objects
1397+
class PythonType:
1398+
pass
1399+
self.assertFalse(is_immortal([1, 2, 3]))
1400+
self.assertFalse(is_immortal({'key': 5}))
1401+
self.assertFalse(is_immortal(object()))
1402+
self.assertFalse(is_immortal(PythonType))
1403+
self.assertFalse(is_immortal(2 ** 100))
1404+
# Use encode/decode to get a fresh object
1405+
self.assertFalse(is_immortal(b'abc'.decode()))
1406+
self.assertFalse(is_immortal('abc'.encode()))
1407+
13771408

13781409
@test.support.cpython_only
13791410
@test.support.force_not_colorized_test_class

0 commit comments

Comments
 (0)