From dc47d15de0c2956a367206d21a0886750df0ab88 Mon Sep 17 00:00:00 2001 From: Takafumi Arakaki Date: Sun, 3 Mar 2013 13:35:48 +0100 Subject: [PATCH] Use locals() for tests in TestInterpreterAPI It is better to check that Interpreter does not fail with the real name space. Previously the doctest using locals() failed because of the bug in _import_raw_namespace. --- jedi/api.py | 11 ++++++----- test/test_regression.py | 11 +++++++---- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/jedi/api.py b/jedi/api.py index cc9f165b..a91e3e76 100644 --- a/jedi/api.py +++ b/jedi/api.py @@ -576,17 +576,18 @@ class Interpreter(Script): """ scope = self._parser.scope for (variable, obj) in raw_namespace.items(): + objname = getattr(obj, '__name__', None) + # Import functions and classes module = getattr(obj, '__module__', None) - if module: - fakeimport = self._make_fakeimport(module, obj.__name__, - variable) + if module and objname: + fakeimport = self._make_fakeimport(module, objname, variable) scope.add_import(fakeimport) continue # Import modules - if getattr(obj, '__file__', None): - fakeimport = self._make_fakeimport(obj.__name__) + if getattr(obj, '__file__', None) and objname: + fakeimport = self._make_fakeimport(objname) scope.add_import(fakeimport) continue diff --git a/test/test_regression.py b/test/test_regression.py index 87a89803..2d125fd5 100755 --- a/test/test_regression.py +++ b/test/test_regression.py @@ -549,25 +549,28 @@ class TestInterpreterAPI(unittest.TestCase): self.assertEqual(sorted(actual), sorted(completions)) def test_complete_raw_function(self): + from os.path import join self.check_interpreter_complete('join().up', - {'join': os.path.join}, + locals(), ['upper']) def test_complete_raw_function_different_name(self): + from os.path import join as pjoin self.check_interpreter_complete('pjoin().up', - {'pjoin': os.path.join}, + locals(), ['upper']) def test_complete_raw_module(self): + import os self.check_interpreter_complete('os.path.join().up', - {'os': os}, + locals(), ['upper']) def test_complete_raw_instance(self): import datetime dt = datetime.datetime(2013, 1, 1) self.check_interpreter_complete('(dt - dt).ti', - {'dt': dt}, + locals(), ['time', 'timetz', 'timetuple'])