mirror of
https://github.com/davidhalter/jedi.git
synced 2025-12-07 22:44:27 +08:00
further call_signatures test refactoring
This commit is contained in:
@@ -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)
|
|
||||||
|
|||||||
Reference in New Issue
Block a user