tests for py__mro__

This commit is contained in:
Dave Halter
2014-08-01 15:50:18 +02:00
parent 2c0a46fafe
commit 68cecad996

View File

@@ -1,6 +1,13 @@
from textwrap import dedent
from jedi import Script
def get_definition_and_evaluator(source):
d = Script(dedent(source)).goto_definitions()[0]
return d._definition, d._evaluator
def test_function_execution():
"""
We've been having an issue of a mutable list that was changed inside the
@@ -11,10 +18,19 @@ def test_function_execution():
def x():
return str()
x"""
d = Script(s).goto_definitions()[0]
func, evaluator = get_definition_and_evaluator(s)
# Now just use the internals of the result (easiest way to get a fully
# usable function).
func, evaluator = d._definition, d._evaluator
# Should return the same result both times.
assert len(evaluator.execute(func)) == 1
assert len(evaluator.execute(func)) == 1
def test_class_mro():
s = """
class X(object):
pass
X"""
cls, evaluator = get_definition_and_evaluator(s)
mro = cls.py__mro__(evaluator)
assert [str(c.name) for c in mro] == ['X', 'object']