|
8 | 8 | import os
|
9 | 9 | import pickle
|
10 | 10 | import random
|
11 |
| -import re |
12 | 11 | import subprocess
|
13 | 12 | import sys
|
14 | 13 | import textwrap
|
@@ -91,51 +90,6 @@ def test_no_FatalError_infinite_loop(self):
|
91 | 90 | def test_memoryview_from_NULL_pointer(self):
|
92 | 91 | self.assertRaises(ValueError, _testcapi.make_memoryview_from_NULL_pointer)
|
93 | 92 |
|
94 |
| - def test_exception(self): |
95 |
| - raised_exception = ValueError("5") |
96 |
| - new_exc = TypeError("TEST") |
97 |
| - try: |
98 |
| - raise raised_exception |
99 |
| - except ValueError as e: |
100 |
| - orig_sys_exception = sys.exception() |
101 |
| - orig_exception = _testcapi.set_exception(new_exc) |
102 |
| - new_sys_exception = sys.exception() |
103 |
| - new_exception = _testcapi.set_exception(orig_exception) |
104 |
| - reset_sys_exception = sys.exception() |
105 |
| - |
106 |
| - self.assertEqual(orig_exception, e) |
107 |
| - |
108 |
| - self.assertEqual(orig_exception, raised_exception) |
109 |
| - self.assertEqual(orig_sys_exception, orig_exception) |
110 |
| - self.assertEqual(reset_sys_exception, orig_exception) |
111 |
| - self.assertEqual(new_exception, new_exc) |
112 |
| - self.assertEqual(new_sys_exception, new_exception) |
113 |
| - else: |
114 |
| - self.fail("Exception not raised") |
115 |
| - |
116 |
| - def test_exc_info(self): |
117 |
| - raised_exception = ValueError("5") |
118 |
| - new_exc = TypeError("TEST") |
119 |
| - try: |
120 |
| - raise raised_exception |
121 |
| - except ValueError as e: |
122 |
| - tb = e.__traceback__ |
123 |
| - orig_sys_exc_info = sys.exc_info() |
124 |
| - orig_exc_info = _testcapi.set_exc_info(new_exc.__class__, new_exc, None) |
125 |
| - new_sys_exc_info = sys.exc_info() |
126 |
| - new_exc_info = _testcapi.set_exc_info(*orig_exc_info) |
127 |
| - reset_sys_exc_info = sys.exc_info() |
128 |
| - |
129 |
| - self.assertEqual(orig_exc_info[1], e) |
130 |
| - |
131 |
| - self.assertSequenceEqual(orig_exc_info, (raised_exception.__class__, raised_exception, tb)) |
132 |
| - self.assertSequenceEqual(orig_sys_exc_info, orig_exc_info) |
133 |
| - self.assertSequenceEqual(reset_sys_exc_info, orig_exc_info) |
134 |
| - self.assertSequenceEqual(new_exc_info, (new_exc.__class__, new_exc, None)) |
135 |
| - self.assertSequenceEqual(new_sys_exc_info, new_exc_info) |
136 |
| - else: |
137 |
| - self.assertTrue(False) |
138 |
| - |
139 | 93 | @unittest.skipUnless(_posixsubprocess, '_posixsubprocess required for this test.')
|
140 | 94 | def test_seq_bytes_to_charp_array(self):
|
141 | 95 | # Issue #15732: crash in _PySequence_BytesToCharpArray()
|
@@ -837,46 +791,6 @@ def __index__(self):
|
837 | 791 | self.assertRaises(TypeError, pynumber_tobase, '123', 10)
|
838 | 792 | self.assertRaises(SystemError, pynumber_tobase, 123, 0)
|
839 | 793 |
|
840 |
| - def check_fatal_error(self, code, expected, not_expected=()): |
841 |
| - with support.SuppressCrashReport(): |
842 |
| - rc, out, err = assert_python_failure('-sSI', '-c', code) |
843 |
| - |
844 |
| - err = decode_stderr(err) |
845 |
| - self.assertIn('Fatal Python error: test_fatal_error: MESSAGE\n', |
846 |
| - err) |
847 |
| - |
848 |
| - match = re.search(r'^Extension modules:(.*) \(total: ([0-9]+)\)$', |
849 |
| - err, re.MULTILINE) |
850 |
| - if not match: |
851 |
| - self.fail(f"Cannot find 'Extension modules:' in {err!r}") |
852 |
| - modules = set(match.group(1).strip().split(', ')) |
853 |
| - total = int(match.group(2)) |
854 |
| - |
855 |
| - for name in expected: |
856 |
| - self.assertIn(name, modules) |
857 |
| - for name in not_expected: |
858 |
| - self.assertNotIn(name, modules) |
859 |
| - self.assertEqual(len(modules), total) |
860 |
| - |
861 |
| - @support.requires_subprocess() |
862 |
| - def test_fatal_error(self): |
863 |
| - # By default, stdlib extension modules are ignored, |
864 |
| - # but not test modules. |
865 |
| - expected = ('_testcapi',) |
866 |
| - not_expected = ('sys',) |
867 |
| - code = 'import _testcapi, sys; _testcapi.fatal_error(b"MESSAGE")' |
868 |
| - self.check_fatal_error(code, expected, not_expected) |
869 |
| - |
870 |
| - # Mark _testcapi as stdlib module, but not sys |
871 |
| - expected = ('sys',) |
872 |
| - not_expected = ('_testcapi',) |
873 |
| - code = textwrap.dedent(''' |
874 |
| - import _testcapi, sys |
875 |
| - sys.stdlib_module_names = frozenset({"_testcapi"}) |
876 |
| - _testcapi.fatal_error(b"MESSAGE") |
877 |
| - ''') |
878 |
| - self.check_fatal_error(code, expected) |
879 |
| - |
880 | 794 | def test_pyobject_repr_from_null(self):
|
881 | 795 | s = _testcapi.pyobject_repr_from_null()
|
882 | 796 | self.assertEqual(s, '<NULL>')
|
@@ -1214,9 +1128,9 @@ def test_pendingcalls_non_threaded(self):
|
1214 | 1128 | self.pendingcalls_wait(l, n)
|
1215 | 1129 |
|
1216 | 1130 | def test_gen_get_code(self):
|
1217 |
| - def genf(): yield |
1218 |
| - gen = genf() |
1219 |
| - self.assertEqual(_testcapi.gen_get_code(gen), gen.gi_code) |
| 1131 | + def genf(): yield |
| 1132 | + gen = genf() |
| 1133 | + self.assertEqual(_testcapi.gen_get_code(gen), gen.gi_code) |
1220 | 1134 |
|
1221 | 1135 |
|
1222 | 1136 | class SubinterpreterTest(unittest.TestCase):
|
@@ -1641,44 +1555,5 @@ def func2(x=None):
|
1641 | 1555 | self.do_test(func2)
|
1642 | 1556 |
|
1643 | 1557 |
|
1644 |
| -class Test_ErrSetAndRestore(unittest.TestCase): |
1645 |
| - |
1646 |
| - def test_err_set_raised(self): |
1647 |
| - with self.assertRaises(ValueError): |
1648 |
| - _testcapi.err_set_raised(ValueError()) |
1649 |
| - v = ValueError() |
1650 |
| - try: |
1651 |
| - _testcapi.err_set_raised(v) |
1652 |
| - except ValueError as ex: |
1653 |
| - self.assertIs(v, ex) |
1654 |
| - |
1655 |
| - def test_err_restore(self): |
1656 |
| - with self.assertRaises(ValueError): |
1657 |
| - _testcapi.err_restore(ValueError) |
1658 |
| - with self.assertRaises(ValueError): |
1659 |
| - _testcapi.err_restore(ValueError, 1) |
1660 |
| - with self.assertRaises(ValueError): |
1661 |
| - _testcapi.err_restore(ValueError, 1, None) |
1662 |
| - with self.assertRaises(ValueError): |
1663 |
| - _testcapi.err_restore(ValueError, ValueError()) |
1664 |
| - try: |
1665 |
| - _testcapi.err_restore(KeyError, "hi") |
1666 |
| - except KeyError as k: |
1667 |
| - self.assertEqual("hi", k.args[0]) |
1668 |
| - try: |
1669 |
| - 1/0 |
1670 |
| - except Exception as e: |
1671 |
| - tb = e.__traceback__ |
1672 |
| - with self.assertRaises(ValueError): |
1673 |
| - _testcapi.err_restore(ValueError, 1, tb) |
1674 |
| - with self.assertRaises(TypeError): |
1675 |
| - _testcapi.err_restore(ValueError, 1, 0) |
1676 |
| - try: |
1677 |
| - _testcapi.err_restore(ValueError, 1, tb) |
1678 |
| - except ValueError as v: |
1679 |
| - self.assertEqual(1, v.args[0]) |
1680 |
| - self.assertIs(tb, v.__traceback__.tb_next) |
1681 |
| - |
1682 |
| - |
1683 | 1558 | if __name__ == "__main__":
|
1684 | 1559 | unittest.main()
|
0 commit comments