diff --git a/jedi/evaluate/compiled/mixed.py b/jedi/evaluate/compiled/mixed.py index dce5d99d..2aee1cbe 100644 --- a/jedi/evaluate/compiled/mixed.py +++ b/jedi/evaluate/compiled/mixed.py @@ -38,6 +38,9 @@ class MixedObject(object): assert search_global is False return [LazyMixedNamesDict(self._evaluator, self, is_instance=False)] + def __repr__(self): + return '<%s: %s>' % (type(self).__name__, repr(self.obj)) + def __getattr__(self, name): return getattr(self._definition, name) diff --git a/test/test_api/test_interpreter.py b/test/test_api/test_interpreter.py index 143b79d0..957bc247 100644 --- a/test/test_api/test_interpreter.py +++ b/test/test_api/test_interpreter.py @@ -5,6 +5,7 @@ Tests of ``jedi.api.Interpreter``. from ..helpers import TestCase import jedi from jedi._compatibility import is_py33 +from jedi.evaluate.compiled import mixed class _GlobalNameSpace(): class SideEffectContainer(): @@ -56,6 +57,9 @@ def test_side_effect_completion(): we need some mixed kind of magic for tests. """ _GlobalNameSpace.SideEffectContainer.foo = 1 + side_effect = get_completion('SideEffectContainer', _GlobalNameSpace.__dict__) + + assert isinstance(side_effect._definition, mixed.MixedObject) foo = get_completion('SideEffectContainer.foo', _GlobalNameSpace.__dict__) assert foo.name == 'foo'