Some better sys tests for compiled objects

This commit is contained in:
Dave Halter
2018-08-09 17:28:09 +02:00
parent f7f32fe206
commit 52746faabf

View File

@@ -3,6 +3,7 @@ import os
from jedi.plugins import typeshed from jedi.plugins import typeshed
from jedi.evaluate.context import TreeInstance, BoundMethod, CompiledInstance from jedi.evaluate.context import TreeInstance, BoundMethod, CompiledInstance
from parso.utils import PythonVersionInfo from parso.utils import PythonVersionInfo
from jedi.evaluate.filters import TreeNameDefinition
TYPESHED_PYTHON3 = os.path.join(typeshed._TYPESHED_PATH, 'stdlib', '3') TYPESHED_PYTHON3 = os.path.join(typeshed._TYPESHED_PATH, 'stdlib', '3')
@@ -81,11 +82,13 @@ def test_method(Script):
assert context.class_context.py__name__() == 'str' assert context.class_context.py__name__() == 'str'
def test_sys(Script, environment): def test_sys_exc_info(Script):
code = 'import sys; sys.exc_info()[1]' code = 'import sys; sys.exc_info()[1]'
def_, = Script(code).goto_definitions() def_, = Script(code).goto_definitions()
assert def_.name == 'BaseException' assert def_.name == 'BaseException'
def test_sys_getwindowsversion(Script, environment):
# This should only exist on Windows, but cmpletion should happen # This should only exist on Windows, but cmpletion should happen
# everywhere. # everywhere.
def_, = Script('import sys; sys.getwindowsversion().major').goto_definitions() def_, = Script('import sys; sys.getwindowsversion().major').goto_definitions()
@@ -95,6 +98,15 @@ def test_sys(Script, environment):
assert def_.name == 'int' assert def_.name == 'int'
def test_sys_hexversion(Script):
script = Script('import sys; sys.hexversion')
def_, = script.completions()
assert isinstance(def_._name, TreeNameDefinition)
assert typeshed._TYPESHED_PATH in def_._name.get_root_context().py__file__()
def_, = script.goto_definitions()
assert def_.name == 'int'
def test_math(Script): def test_math(Script):
def_, = Script('import math; math.acos()').goto_definitions() def_, = Script('import math; math.acos()').goto_definitions()
assert def_.name == 'float' assert def_.name == 'float'