mirror of
https://github.com/davidhalter/jedi.git
synced 2025-12-08 06:44:46 +08:00
CompiledContext should not have a file
This commit is contained in:
@@ -77,12 +77,13 @@ class BaseDefinition(object):
|
|||||||
@property
|
@property
|
||||||
def module_path(self):
|
def module_path(self):
|
||||||
"""Shows the file path of a module. e.g. ``/usr/lib/python2.7/os.py``"""
|
"""Shows the file path of a module. e.g. ``/usr/lib/python2.7/os.py``"""
|
||||||
try:
|
module = self._get_module()
|
||||||
py__file__ = self._get_module().py__file__
|
if module.is_stub() or not module.is_compiled():
|
||||||
except AttributeError:
|
# Compiled modules should not return a module path even if they
|
||||||
return None
|
# have one.
|
||||||
else:
|
return self._get_module().py__file__()
|
||||||
return py__file__()
|
|
||||||
|
return None
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def name(self):
|
def name(self):
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import pytest
|
|||||||
import jedi
|
import jedi
|
||||||
from jedi import __doc__ as jedi_doc, names
|
from jedi import __doc__ as jedi_doc, names
|
||||||
from ..helpers import TestCase
|
from ..helpers import TestCase
|
||||||
|
from jedi.evaluate.compiled import CompiledContextName
|
||||||
|
|
||||||
|
|
||||||
def test_is_keyword(Script):
|
def test_is_keyword(Script):
|
||||||
@@ -439,3 +440,18 @@ def test_added_equals_to_params(Script):
|
|||||||
assert run(' bar').complete == ''
|
assert run(' bar').complete == ''
|
||||||
x = run('foo(bar=isins').name_with_symbols
|
x = run('foo(bar=isins').name_with_symbols
|
||||||
assert x == 'isinstance'
|
assert x == 'isinstance'
|
||||||
|
|
||||||
|
|
||||||
|
def test_builtin_module_with_path(Script):
|
||||||
|
"""
|
||||||
|
This test simply tests if a module from /usr/lib/python3.8/lib-dynload/ has
|
||||||
|
a path or not. It shouldn't have a module_path, because that is just
|
||||||
|
confusing.
|
||||||
|
"""
|
||||||
|
semlock, = Script('from _multiprocessing import SemLock').goto_definitions()
|
||||||
|
assert isinstance(semlock._name, CompiledContextName)
|
||||||
|
assert semlock.module_path is None
|
||||||
|
assert semlock.in_builtin_module() is True
|
||||||
|
assert semlock.name == 'SemLock'
|
||||||
|
assert semlock.line is None
|
||||||
|
assert semlock.column is None
|
||||||
|
|||||||
Reference in New Issue
Block a user