mirror of
https://github.com/SpaceVim/SpaceVim.git
synced 2025-02-04 08:50:05 +08:00
65 lines
1.7 KiB
Python
65 lines
1.7 KiB
Python
import pytest
|
|
|
|
from ..helpers import test_dir
|
|
|
|
|
|
def test_import_references(Script):
|
|
s = Script("from .. import foo", path=test_dir.joinpath("foo.py"))
|
|
assert [usage.line for usage in s.get_references()] == [1]
|
|
|
|
|
|
def test_exclude_builtin_modules(Script):
|
|
def get(include):
|
|
references = Script(source).get_references(include_builtins=include)
|
|
return [(d.line, d.column) for d in references]
|
|
source = '''import sys\nsys.setprofile'''
|
|
places = get(include=True)
|
|
assert len(places) >= 3 # Includes stubs, the reference itself and the builtin
|
|
|
|
places = get(include=False)
|
|
# Just the reference
|
|
assert places == [(2, 4)]
|
|
|
|
|
|
@pytest.mark.parametrize('code, places', [
|
|
('', [(1, 7), (4, 6)]),
|
|
('', [(2, 5)]),
|
|
('', [(2, 24), (7, 10), (11, 10)]),
|
|
('', [(6, 4), (14, 0)]),
|
|
('', [(7, 4), (8, 11)]),
|
|
('', [(7, 22), (11, 22)]),
|
|
('', [(11, 4), (12, 11)]),
|
|
('from datetime', [(1, 5)]),
|
|
('''from datetime import datetime
|
|
d1 = datetime.now()
|
|
d2 = datetime.now()
|
|
''', [(2, 14), (3, 14)]),
|
|
('''from datetime import timedelta
|
|
t1 = timedelta(seconds=1)
|
|
t2 = timedelta(seconds=2)
|
|
''', [(2, 15), (3, 15)])
|
|
])
|
|
def test_references_scope(Script, code, places):
|
|
if not code:
|
|
code = '''import sys
|
|
from collections import defaultdict
|
|
|
|
print(sys.path)
|
|
|
|
def foo(bar):
|
|
baz = defaultdict(int)
|
|
return baz
|
|
|
|
def bar(foo):
|
|
baz = defaultdict(int)
|
|
return baz
|
|
|
|
foo()
|
|
'''
|
|
from jedi.api.project import Project
|
|
project = Project('', sys_path=[], smart_sys_path=False)
|
|
script = Script(code, project=project)
|
|
|
|
for place in places:
|
|
assert places == [(n.line, n.column) for n in script.get_references(scope='file', *place)]
|