diff --git a/test/regression.py b/test/regression.py index 6e78eccd..6b939064 100755 --- a/test/regression.py +++ b/test/regression.py @@ -10,6 +10,7 @@ import time import functools import itertools import os +import textwrap from base import TestBase, cwd_at @@ -95,6 +96,31 @@ class TestRegression(TestBase): if not is_py25: assert len(r[0].doc) > 100 + def definition_when_in_function_call(self, pre_cursor, post_cursor=''): + source = textwrap.dedent(""" + def f(): + pass + %s%s""" % (pre_cursor, post_cursor)) + lines = source.splitlines() + pos = (len(lines), len(pre_cursor)) + return list(self.definition(source, pos)) + + def test_definition_when_in_function_call_right_after_open_paren(self): + defs = self.definition_when_in_function_call('f(') + self.assertEqual(defs[0].description, 'def f') + + def test_definition_when_in_function_call_after_open_paren_and_space(self): + defs = self.definition_when_in_function_call('f( ') + self.assertEqual(defs[0].description, 'def f') + + def test_definition_when_in_function_call_right_after_comma(self): + defs = self.definition_when_in_function_call('f(1,') + self.assertEqual(defs[0].description, 'def f') + + def test_definition_when_in_function_call_after_comma_and_space(self): + defs = self.definition_when_in_function_call('f(1, ') + self.assertEqual(defs[0].description, 'def f') + def test_function_call_signature(self): defs = self.definition(""" def f(x, y=1, z='a'):