Make the Project API public, fixes #778

This commit is contained in:
Dave Halter
2020-01-30 19:18:41 +01:00
parent e930f47861
commit ceccbf3678
7 changed files with 22 additions and 16 deletions

View File

@@ -28,10 +28,10 @@ def test_sqlite3_conversion(Script):
def test_conversion_of_stub_only(Script):
project = Project(os.path.join(root_dir, 'test', 'completion', 'stub_folder'))
code = 'import stub_only; stub_only.in_stub_only'
d1, = Script(code, _project=project).goto()
d1, = Script(code, project=project).goto()
assert d1.is_stub()
script = Script(path=d1.module_path, _project=project)
script = Script(path=d1.module_path, project=project)
d2, = script.goto(line=d1.line, column=d1.column)
assert d2.is_stub()
assert d2.module_path == d1.module_path
@@ -42,7 +42,7 @@ def test_conversion_of_stub_only(Script):
def test_goto_on_file(Script):
project = Project(os.path.join(root_dir, 'test', 'completion', 'stub_folder'))
script = Script('import stub_only; stub_only.Foo', _project=project)
script = Script('import stub_only; stub_only.Foo', project=project)
d1, = script.goto()
v, = d1._name.infer()
foo, bar, obj = v.py__mro__()
@@ -51,7 +51,7 @@ def test_goto_on_file(Script):
assert obj.py__name__() == 'object'
# Make sure we go to Bar, because Foo is a bit before: `class Foo(Bar):`
script = Script(path=d1.module_path, _project=project)
script = Script(path=d1.module_path, project=project)
d2, = script.goto(line=d1.line, column=d1.column + 4)
assert d2.name == 'Bar'

View File

@@ -9,7 +9,7 @@ import pytest
def ScriptInStubFolder(Script):
path = get_example_dir('stub_packages')
project = Project(path, sys_path=[path], smart_sys_path=False)
return partial(Script, _project=project)
return partial(Script, project=project)
@pytest.mark.parametrize(

View File

@@ -54,7 +54,7 @@ def test_infer_and_goto(Script, code, full_name, has_stub, has_python, way,
has_python = False
project = Project(os.path.join(root_dir, 'test', 'completion', 'stub_folder'))
s = Script(code, _project=project)
s = Script(code, project=project)
prefer_stubs = kwargs['prefer_stubs']
only_stubs = kwargs['only_stubs']

View File

@@ -363,7 +363,7 @@ def test_relative_imports_with_multiple_similar_directories(Script, path, empty_
script = Script(
"from . ",
path=os.path.join(dir, path),
_project=project,
project=project,
)
name, import_ = script.complete()
assert import_.name == 'import'
@@ -376,14 +376,14 @@ def test_relative_imports_with_outside_paths(Script):
script = Script(
"from ...",
path=os.path.join(dir, 'api/whatever/test_this.py'),
_project=project,
project=project,
)
assert [c.name for c in script.complete()] == ['api', 'whatever']
script = Script(
"from " + '.' * 100,
path=os.path.join(dir, 'api/whatever/test_this.py'),
_project=project,
project=project,
)
assert not script.complete()
@@ -391,13 +391,13 @@ def test_relative_imports_with_outside_paths(Script):
@cwd_at('test/examples/issue1209/api/whatever/')
def test_relative_imports_without_path(Script):
project = Project('.', sys_path=[], smart_sys_path=False)
script = Script("from . ", _project=project)
script = Script("from . ", project=project)
assert [c.name for c in script.complete()] == ['api_test1', 'import']
script = Script("from .. ", _project=project)
script = Script("from .. ", project=project)
assert [c.name for c in script.complete()] == ['import', 'whatever']
script = Script("from ... ", _project=project)
script = Script("from ... ", project=project)
assert [c.name for c in script.complete()] == ['api', 'import', 'whatever']