diff --git a/jedi/api/classes.py b/jedi/api/classes.py index e7ec9000..924f5ef8 100644 --- a/jedi/api/classes.py +++ b/jedi/api/classes.py @@ -114,8 +114,10 @@ class BaseDefinition(object): ... def f(): ... pass ... - ... variable = keyword or f or C or x''' - >>> script = Script(source, len(source.splitlines()), 3, 'example.py') + ... for variable in [keyword, f, C, x]: + ... variable''' + + >>> script = Script(source) >>> defs = script.goto_definitions() Before showing what is in ``defs``, let's sort it by :attr:`line` @@ -604,7 +606,7 @@ class Definition(use_metaclass(CachedMetaClass, BaseDefinition)): ... class C: ... pass ... - ... variable = f or C''' + ... variable = f if random.choice([0,1]) else C''' >>> script = Script(source, column=3) # line is maximum by default >>> defs = script.goto_definitions() >>> defs = sorted(defs, key=lambda d: d.line) diff --git a/jedi/evaluate/representation.py b/jedi/evaluate/representation.py index ca331c8f..fb9d0fad 100644 --- a/jedi/evaluate/representation.py +++ b/jedi/evaluate/representation.py @@ -484,6 +484,9 @@ class Function(use_metaclass(CachedMetaClass, Wrapper)): else: return FunctionExecution(evaluator, self, params).get_return_types() + def py__bool__(self): + return True + def __getattr__(self, name): return getattr(self.base_func, name) @@ -668,3 +671,6 @@ class ModuleWrapper(use_metaclass(CachedMetaClass, pr.Module, Wrapper)): def __repr__(self): return "<%s: %s>" % (type(self).__name__, self._module) + + def py__bool__(self): + return True diff --git a/test/test_regression.py b/test/test_regression.py index e42a257e..1509fef9 100644 --- a/test/test_regression.py +++ b/test/test_regression.py @@ -92,7 +92,7 @@ class TestRegression(TestCase): class C: pass - variable = f or C""") + variable = f if random.choice([0, 1]) else C""") defs = Script(source, column=3).goto_definitions() defs = sorted(defs, key=lambda d: d.line) self.assertEqual([d.description for d in defs],