1
0
forked from VimPlug/jedi

Test and preparations for better call signatures with builtins, see #515.

This commit is contained in:
Dave Halter
2015-04-10 03:05:38 +02:00
parent 1e623509cd
commit 74779f1a5d
3 changed files with 15 additions and 1 deletions

View File

@@ -326,7 +326,7 @@ class BaseDefinition(object):
raise AttributeError()
followed = followed[0] # only check the first one.
if followed.isinstance(er.Function):
if followed.type == 'funcdef':
if isinstance(followed, er.InstanceElement):
params = followed.params[1:]
else:

View File

@@ -85,6 +85,8 @@ class CompiledObject(Base):
def params(self):
params_str, ret = self._parse_function_doc()
tokens = params_str.split(',')
if inspect.ismethoddescriptor(self._cls().obj):
tokens.insert(0, 'self')
params = []
for p in tokens:
parts = [FakeName(part) for part in p.strip().split('=')]

View File

@@ -230,6 +230,18 @@ class TestParams(TestCase):
assert p[0].name in ['file', 'name']
assert p[1].name == 'mode'
def test_builtins(self):
"""
The self keyword should be visible even for builtins, if not
instantiated.
"""
p = self.params('str.endswith(')
assert p[0].name == 'self'
assert p[1].name == 'suffix'
p = self.params('str.endswith(')
assert p[0].name == 'suffix'
def test_signature_is_definition():
"""