From 4865505215fba822581588c04d0214995c31c336 Mon Sep 17 00:00:00 2001 From: David Halter Date: Fri, 3 May 2013 17:00:07 +0430 Subject: [PATCH] getattr is now also allowed on modules, fixes #116 --- jedi/evaluate_representation.py | 2 +- test/test_regression.py | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/jedi/evaluate_representation.py b/jedi/evaluate_representation.py index 1bb2c65e..e5766d21 100644 --- a/jedi/evaluate_representation.py +++ b/jedi/evaluate_representation.py @@ -408,7 +408,7 @@ class Execution(Executable): return [] for obj in objects: - if not isinstance(obj, (Instance, Class)): + if not isinstance(obj, (Instance, Class, pr.Module)): debug.warning('getattr called without instance') continue diff --git a/test/test_regression.py b/test/test_regression.py index 2b1116bb..2484f48f 100755 --- a/test/test_regression.py +++ b/test/test_regression.py @@ -238,6 +238,11 @@ class TestRegression(TestBase): # jedi-vim #70 s = """def foo(""" assert self.function_definition(s) is None + jedi.set_debug_function(jedi.debug.print_to_stdout) + # jedi-vim #116 + s = """import functools; test = getattr(functools, 'partial'); test(""" + check(self.function_definition(s), 'partial', 0) + jedi.set_debug_function(None) @unittest.skip("function_definition at ``f( |)`` does not work") def test_function_definition_empty_paren_pre_space(self):