11
11
Py_eval_input = _testcapi .Py_eval_input
12
12
13
13
14
+ class DictSubclass (dict ):
15
+ pass
16
+
17
+
14
18
class CAPITest (unittest .TestCase ):
15
19
# TODO: Test the following functions:
16
20
#
@@ -50,15 +54,19 @@ def run(s, *args):
50
54
self .assertRaises (TypeError , run , b'a\n ' , dict (a = 1 ), [])
51
55
self .assertRaises (TypeError , run , b'a\n ' , dict (a = 1 ), 1 )
52
56
57
+ self .assertIsNone (run (b'a\n ' , DictSubclass (a = 1 )))
58
+ self .assertIsNone (run (b'a\n ' , DictSubclass (), dict (a = 1 )))
59
+ self .assertRaises (NameError , run , b'a\n ' , DictSubclass ())
60
+
53
61
self .assertIsNone (run (b'\xc3 \xa4 \n ' , {'\xe4 ' : 1 }))
54
62
self .assertRaises (SyntaxError , run , b'\xe4 \n ' , {})
55
63
56
- # CRASHES run( b'a\n', NULL)
57
- # CRASHES run( b'a\n', NULL, {})
58
- # CRASHES run( b'a\n', NULL, dict(a=1))
59
- # CRASHES run( b'a\n', UserDict())
60
- # CRASHES run( b'a\n', UserDict(), {})
61
- # CRASHES run( b'a\n', UserDict(), dict(a=1))
64
+ self . assertRaises ( SystemError , run , b'a\n ' , NULL )
65
+ self . assertRaises ( SystemError , run , b'a\n ' , NULL , {})
66
+ self . assertRaises ( SystemError , run , b'a\n ' , NULL , dict (a = 1 ))
67
+ self . assertRaises ( SystemError , run , b'a\n ' , UserDict ())
68
+ self . assertRaises ( SystemError , run , b'a\n ' , UserDict (), {})
69
+ self . assertRaises ( SystemError , run , b'a\n ' , UserDict (), dict (a = 1 ))
62
70
63
71
# CRASHES run(NULL, {})
64
72
@@ -82,12 +90,16 @@ def run(*args):
82
90
self .assertRaises (TypeError , run , dict (a = 1 ), [])
83
91
self .assertRaises (TypeError , run , dict (a = 1 ), 1 )
84
92
85
- # CRASHES run(NULL)
86
- # CRASHES run(NULL, {})
87
- # CRASHES run(NULL, dict(a=1))
88
- # CRASHES run(UserDict())
89
- # CRASHES run(UserDict(), {})
90
- # CRASHES run(UserDict(), dict(a=1))
93
+ self .assertIsNone (run (DictSubclass (a = 1 )))
94
+ self .assertIsNone (run (DictSubclass (), dict (a = 1 )))
95
+ self .assertRaises (NameError , run , DictSubclass ())
96
+
97
+ self .assertRaises (SystemError , run , NULL )
98
+ self .assertRaises (SystemError , run , NULL , {})
99
+ self .assertRaises (SystemError , run , NULL , dict (a = 1 ))
100
+ self .assertRaises (SystemError , run , UserDict ())
101
+ self .assertRaises (SystemError , run , UserDict (), {})
102
+ self .assertRaises (SystemError , run , UserDict (), dict (a = 1 ))
91
103
92
104
@unittest .skipUnless (TESTFN_UNDECODABLE , 'only works if there are undecodable paths' )
93
105
@unittest .skipIf (os .name == 'nt' , 'does not work on Windows' )
0 commit comments