@@ -151,6 +151,20 @@ def setInputLine(self, line):
151151 """Set current input line of the test REPL."""
152152 self .repl .input_line = line
153153
154+ def test_func_name (self ):
155+ for (line , expected_name ) in [("spam(" , "spam" ),
156+ ("spam(map([]" , "map" ),
157+ ("spam((), " , "spam" )]:
158+ self .setInputLine (line )
159+ self .assertTrue (self .repl .get_args ())
160+ self .assertEqual (self .repl .current_func .__name__ , expected_name )
161+
162+ def test_syntax_error_parens (self ):
163+ for line in ["spam(]" , "spam([)" , "spam())" ]:
164+ self .setInputLine (line )
165+ # Should not explode
166+ self .repl .get_args ()
167+
154168 def test_kw_arg_position (self ):
155169 self .setInputLine ("spam(a=0" )
156170 self .assertTrue (self .repl .get_args ())
@@ -171,6 +185,16 @@ def test_lambda_position(self):
171185 # Argument position
172186 self .assertEqual (self .repl .argspec [3 ], 1 )
173187
188+ def test_name_in_assignment_without_spaces (self ):
189+ # Issue #127
190+ self .setInputLine ("x=range(" )
191+ self .assertTrue (self .repl .get_args ())
192+ self .assertEqual (self .repl .current_func .__name__ , "range" )
193+
194+ def test_nonexistent_name (self ):
195+ self .setInputLine ("spamspamspam(" )
196+ self .assertFalse (self .repl .get_args ())
197+
174198
175199if __name__ == '__main__' :
176200 unittest .main ()
0 commit comments