diff --git a/jedi/api/classes.py b/jedi/api/classes.py index 9a3df1dd..00eefa70 100644 --- a/jedi/api/classes.py +++ b/jedi/api/classes.py @@ -544,7 +544,9 @@ class Definition(use_metaclass(CachedMetaClass, BaseDefinition)): # only show module name d = 'module %s' % self.module_name elif isinstance(d, pr.Param): - d = d.get_code() + d = d.get_code().strip() + if d.endswith(','): + d = d[:-1] # Remove the comma. else: # ExprStmt try: first_leaf = d.first_leaf() diff --git a/test/test_api/test_api_classes.py b/test/test_api/test_api_classes.py index a4c28f8f..206e2f0b 100644 --- a/test/test_api/test_api_classes.py +++ b/test/test_api/test_api_classes.py @@ -158,6 +158,15 @@ def test_signature_params(): check(Script(s + '\nbar=foo\nbar').goto_assignments()) +def test_param_endings(): + """ + Params should be represented without the comma and whitespace they have + around them. + """ + sig = Script('def x(a, b=5, c=""): pass\n x(').call_signatures()[0] + assert [p.description for p in sig.params] == ['a', 'b=5', 'c=""'] + + class TestIsDefinition(TestCase): def _def(self, source, index=-1): return names(dedent(source), references=True, all_scopes=True)[index]