Fix a few tests by either fixing the test cases or adding py__bool__ functions to objects that should have such a method.

This commit is contained in:
Dave Halter
2014-08-20 17:28:54 +02:00
parent f911050300
commit 3cf8bfa8e1
3 changed files with 12 additions and 4 deletions

View File

@@ -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)

View File

@@ -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

View File

@@ -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],