Skip to content

Commit 0191af9

Browse files
gh-107735: Move just added C API tests to better place (GH-107743)
1 parent 0e6e32f commit 0191af9

File tree

1 file changed

+40
-40
lines changed

1 file changed

+40
-40
lines changed

Lib/test/test_capi/test_misc.py

+40-40
Original file line numberDiff line numberDiff line change
@@ -992,6 +992,46 @@ class Data(_testcapi.ObjExtraData):
992992
del d.extra
993993
self.assertIsNone(d.extra)
994994

995+
def test_sys_getobject(self):
996+
getobject = _testcapi.sys_getobject
997+
998+
self.assertIs(getobject(b'stdout'), sys.stdout)
999+
with support.swap_attr(sys, '\U0001f40d', 42):
1000+
self.assertEqual(getobject('\U0001f40d'.encode()), 42)
1001+
1002+
self.assertIs(getobject(b'nonexisting'), AttributeError)
1003+
self.assertIs(getobject(b'\xff'), AttributeError)
1004+
# CRASHES getobject(NULL)
1005+
1006+
def test_sys_setobject(self):
1007+
setobject = _testcapi.sys_setobject
1008+
1009+
value = ['value']
1010+
value2 = ['value2']
1011+
try:
1012+
self.assertEqual(setobject(b'newattr', value), 0)
1013+
self.assertIs(sys.newattr, value)
1014+
self.assertEqual(setobject(b'newattr', value2), 0)
1015+
self.assertIs(sys.newattr, value2)
1016+
self.assertEqual(setobject(b'newattr', NULL), 0)
1017+
self.assertFalse(hasattr(sys, 'newattr'))
1018+
self.assertEqual(setobject(b'newattr', NULL), 0)
1019+
finally:
1020+
with contextlib.suppress(AttributeError):
1021+
del sys.newattr
1022+
try:
1023+
self.assertEqual(setobject('\U0001f40d'.encode(), value), 0)
1024+
self.assertIs(getattr(sys, '\U0001f40d'), value)
1025+
self.assertEqual(setobject('\U0001f40d'.encode(), NULL), 0)
1026+
self.assertFalse(hasattr(sys, '\U0001f40d'))
1027+
finally:
1028+
with contextlib.suppress(AttributeError):
1029+
delattr(sys, '\U0001f40d')
1030+
1031+
with self.assertRaises(UnicodeDecodeError):
1032+
setobject(b'\xff', value)
1033+
# CRASHES setobject(NULL, value)
1034+
9951035

9961036
@requires_limited_api
9971037
class TestHeapTypeRelative(unittest.TestCase):
@@ -2578,46 +2618,6 @@ def testfunc(it):
25782618
with self.assertRaises(StopIteration):
25792619
next(it)
25802620

2581-
def test_sys_getobject(self):
2582-
getobject = _testcapi.sys_getobject
2583-
2584-
self.assertIs(getobject(b'stdout'), sys.stdout)
2585-
with support.swap_attr(sys, '\U0001f40d', 42):
2586-
self.assertEqual(getobject('\U0001f40d'.encode()), 42)
2587-
2588-
self.assertIs(getobject(b'nonexisting'), AttributeError)
2589-
self.assertIs(getobject(b'\xff'), AttributeError)
2590-
# CRASHES getobject(NULL)
2591-
2592-
def test_sys_setobject(self):
2593-
setobject = _testcapi.sys_setobject
2594-
2595-
value = ['value']
2596-
value2 = ['value2']
2597-
try:
2598-
self.assertEqual(setobject(b'newattr', value), 0)
2599-
self.assertIs(sys.newattr, value)
2600-
self.assertEqual(setobject(b'newattr', value2), 0)
2601-
self.assertIs(sys.newattr, value2)
2602-
self.assertEqual(setobject(b'newattr', NULL), 0)
2603-
self.assertFalse(hasattr(sys, 'newattr'))
2604-
self.assertEqual(setobject(b'newattr', NULL), 0)
2605-
finally:
2606-
with contextlib.suppress(AttributeError):
2607-
del sys.newattr
2608-
try:
2609-
self.assertEqual(setobject('\U0001f40d'.encode(), value), 0)
2610-
self.assertIs(getattr(sys, '\U0001f40d'), value)
2611-
self.assertEqual(setobject('\U0001f40d'.encode(), NULL), 0)
2612-
self.assertFalse(hasattr(sys, '\U0001f40d'))
2613-
finally:
2614-
with contextlib.suppress(AttributeError):
2615-
delattr(sys, '\U0001f40d')
2616-
2617-
with self.assertRaises(UnicodeDecodeError):
2618-
setobject(b'\xff', value)
2619-
# CRASHES setobject(NULL, value)
2620-
26212621

26222622
if __name__ == "__main__":
26232623
unittest.main()

0 commit comments

Comments
 (0)