further call_signatures test refactoring

This commit is contained in:
David Halter
2013-08-07 16:40:37 +04:30
parent 085a076764
commit 8c5cf0ace6

View File

@@ -4,23 +4,20 @@ from .base import unittest
from jedi import Script from jedi import Script
class TestCallSignatures(unittest.TestCase): class TestCallSignatures(unittest.TestCase):
def _assert_call_def(self, call_defs, name, index): def _run(self, source, expected_name, expected_index=0, line=None, column=None):
# just for the sake of this simple comparison signatures = Script(source, line, column).call_signatures()
assert len(call_defs) <= 1
if not call_defs: assert len(signatures) <= 1
assert name is None
if not signatures:
assert expected_name is None
else: else:
assert call_defs[0].call_name == name assert signatures[0].call_name == expected_name
assert call_defs[0].index == index assert signatures[0].index == expected_index
def test_call_signatures(self): def test_call_signatures(self):
def _run(source, expected_name, expected_index=0, column=None, line=None):
signatures = Script(source, line, column).call_signatures()
self._assert_call_def(signatures, expected_name, expected_index)
def run(source, name, index=0, column=None, line=1): def run(source, name, index=0, column=None, line=1):
_run(source, name, index, column, line) self._run(source, name, index, line, column)
# simple # simple
s1 = "abs(a, str(" s1 = "abs(a, str("
@@ -79,8 +76,6 @@ class TestCallSignatures(unittest.TestCase):
run(s, 'func', 0, column=13, line=2) run(s, 'func', 0, column=13, line=2)
def test_function_definition_complex(self): def test_function_definition_complex(self):
check = self._assert_call_def
s = """ s = """
def abc(a,b): def abc(a,b):
pass pass
@@ -91,20 +86,22 @@ class TestCallSignatures(unittest.TestCase):
if 1: if 1:
pass pass
""" """
check(Script(s, 6, 24).call_signatures(), 'abc', 0) self._run(s, 'abc', 0, line=6, column=24)
s = """ s = """
import re import re
def huhu(it): def huhu(it):
re.compile( re.compile(
return it * 2 return it * 2
""" """
check(Script(s, 4, 31).call_signatures(), 'compile', 0) self._run(s, 'compile', 0, line=4, column=31)
# jedi-vim #70 # jedi-vim #70
s = """def foo(""" s = """def foo("""
assert Script(s).call_signatures() == [] assert Script(s).call_signatures() == []
# jedi-vim #116 # jedi-vim #116
s = """import functools; test = getattr(functools, 'partial'); test(""" s = """import functools; test = getattr(functools, 'partial'); test("""
check(Script(s).call_signatures(), 'partial', 0) self._run(s, 'partial', 0)
def test_call_signature_on_module(self): def test_call_signature_on_module(self):
"""github issue #240""" """github issue #240"""
@@ -117,5 +114,4 @@ class TestCallSignatures(unittest.TestCase):
def f(a, b): def f(a, b):
pass pass
f( )""") f( )""")
call_defs = Script(s, 3, 3).call_signatures() self._run(s, 'f', 0, line=3, column=3)
self._assert_call_def(call_defs, 'f', 0)