From c6248ae16909924a2cddf17cd4ce32949e9e3740 Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Tue, 6 Dec 2016 18:18:53 +0100 Subject: [PATCH] Some testing fixes that were broken with the few previous commits. --- jedi/api/__init__.py | 15 +++++++-------- jedi/api/classes.py | 4 ++-- test/test_api/test_full_name.py | 2 +- test/test_evaluate/test_imports.py | 4 ++-- test/test_evaluate/test_representation.py | 4 ++-- test/test_parser/test_tokenize.py | 2 +- 6 files changed, 15 insertions(+), 16 deletions(-) diff --git a/jedi/api/__init__.py b/jedi/api/__init__.py index 06bcf215..453873d7 100644 --- a/jedi/api/__init__.py +++ b/jedi/api/__init__.py @@ -437,18 +437,17 @@ def names(source=None, path=None, encoding='utf-8', all_scopes=False, is_def = _def._name.tree_name.is_definition() return definitions and is_def or references and not is_def - def get_definitions(): - for tree_name in get_module_names(script._get_module_node(), all_scopes): - name = TreeNameDefinition( - module_context.create_context(tree_name), - tree_name - ) - yield classes.Definition(script._evaluator, name) - # Set line/column to a random position, because they don't matter. script = Script(source, line=1, column=0, path=path, encoding=encoding) module_context = script._get_module() defs = [ + classes.Definition( + script._evaluator, + TreeNameDefinition( + module_context.create_context(name.parent), + name + ) + ) for name in get_module_names(script._get_module_node(), all_scopes) ] return sorted(filter(def_ref_filter, defs), key=lambda x: (x.line, x.column)) diff --git a/jedi/api/classes.py b/jedi/api/classes.py index 140c605a..79c94dbf 100644 --- a/jedi/api/classes.py +++ b/jedi/api/classes.py @@ -54,8 +54,6 @@ class BaseDefinition(object): _tuple_mapping = dict((tuple(k.split('.')), v) for (k, v) in { 'argparse._ActionsContainer': 'argparse.ArgumentParser', - '_sre.SRE_Match': 're.MatchObject', - '_sre.SRE_Pattern': 're.RegexObject', }.items()) def __init__(self, evaluator, name): @@ -777,6 +775,8 @@ class _Help(object): # TODO: Use all of the followed objects as input to Documentation. context = next(iter(followed)) return context.get_node() + if self._name.tree_name is None: + return None return self._name.tree_name.get_definition() def full(self, fast=True): diff --git a/test/test_api/test_full_name.py b/test/test_api/test_full_name.py index 71ce7ab8..3f220520 100644 --- a/test/test_api/test_full_name.py +++ b/test/test_api/test_full_name.py @@ -45,7 +45,7 @@ class TestFullNameWithGotoDefinitions(MixinTestFullName, TestCase): self.check(""" import re any_re = re.compile('.*') - any_re""", '_sre.compile.SRE_Pattern') + any_re""", '_sre.SRE_Pattern') def test_from_import(self): self.check('from os import path', 'os.path') diff --git a/test/test_evaluate/test_imports.py b/test/test_evaluate/test_imports.py index bbf5085f..6402a7b0 100644 --- a/test/test_evaluate/test_imports.py +++ b/test/test_evaluate/test_imports.py @@ -97,8 +97,8 @@ def test_not_importable_file(): def test_import_unique(): src = "import os; os.path" defs = jedi.Script(src, path='example.py').goto_definitions() - defs = [d._name.parent_context for d in defs] - assert len(defs) == len(set(defs)) + parent_contexts = [d._name._context for d in defs] + assert len(parent_contexts) == len(set(parent_contexts)) def test_cache_works_with_sys_path_param(tmpdir): diff --git a/test/test_evaluate/test_representation.py b/test/test_evaluate/test_representation.py index e084bd90..1323a9cb 100644 --- a/test/test_evaluate/test_representation.py +++ b/test/test_evaluate/test_representation.py @@ -4,8 +4,8 @@ from jedi import Script def get_definition_and_evaluator(source): - d = Script(dedent(source)).goto_definitions()[0] - return d._name.parent_context, d._evaluator + first, = Script(dedent(source)).goto_definitions() + return first._name._context, first._evaluator def test_function_execution(): diff --git a/test/test_parser/test_tokenize.py b/test/test_parser/test_tokenize.py index fb33289d..a42271ff 100644 --- a/test/test_parser/test_tokenize.py +++ b/test/test_parser/test_tokenize.py @@ -121,7 +121,7 @@ class TokenTest(unittest.TestCase): def test_tokenizer_with_string_literal_backslash(): import jedi c = jedi.Script("statement = u'foo\\\n'; statement").goto_definitions() - assert c[0]._name.parent_context.obj == 'foo' + assert c[0]._name._context.obj == 'foo' def test_ur_literals():