[py-dev] py.test error?
anurag uniyal
anuraguniyal at yahoo.com
Wed Aug 1 14:30:25 CEST 2007
While running py.test on my unitests I got following error in py.test code?
It occurred when I changed an assert statement so that it fails.
I tried to replicate this in a small sample script but could not replicate it.
Here is the complete output:
______ entrypoint: Test_CollectionPrefs().test_recursive_attribute_access ______
def runtraced(self, colitem):
if self.shouldclose():
raise Exit, "received external close signal"
outcome = None
colitem.startcapture()
try:
self.start(colitem)
try:
try:
if colitem._stickyfailure:
raise colitem._stickyfailure
> outcome = self.run(colitem)
[/usr/lib/python2.4/site-packages/py/test/session.py:83]
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
def run(self, colitem):
if self.config.option.collectonly and isinstance(colitem, py.test.collect.Item):
return
if isinstance(colitem, py.test.collect.Item):
colitem._skipbykeyword(self.config.option.keyword)
> res = colitem.run()
[/usr/lib/python2.4/site-packages/py/test/session.py:106]
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
def run(self):
""" setup and execute the underlying test function. """
self._state.prepare(self)
> self.execute(self.obj, *self._args)
[/usr/lib/python2.4/site-packages/py/test/item.py:67]
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
def execute(self, target, *args):
""" execute the given test function. """
> target(*args)
[/usr/lib/python2.4/site-packages/py/test/item.py:71]
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
def __init__(self, *args):
BuiltinAssertionError.__init__(self, *args)
if args:
self.msg = str(args[0])
else:
f = sys._getframe(1)
try:
source = py.code.Frame(f).statement
source = str(source.deindent()).strip()
except py.error.ENOENT:
source = None
# this can also occur during reinterpretation, when the
# co_filename is set to "<run>".
if source:
> self.msg = exprinfo.interpret(source, f, should_fail=True)
[/usr/lib/python2.4/site-packages/py/magic/assertion.py:22]
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
def interpret(source, frame, should_fail=False):
module = Interpretable(parse(source, 'exec').node)
#print "got module", module
if isinstance(frame, py.std.types.FrameType):
frame = py.code.Frame(frame)
try:
module.run(frame)
except Failure, e:
> return getfailure(e)
[/usr/lib/python2.4/site-packages/py/magic/exprinfo.py:424]
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
def getfailure(e):
> explanation = e.node.nice_explanation()
[/usr/lib/python2.4/site-packages/py/magic/exprinfo.py:450]
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
def nice_explanation(self):
# uck! See CallFunc for where \n{ and \n} escape sequences are used
raw_lines = (self.explanation or '').split('\n')
# escape newlines not followed by { and }
lines = [raw_lines[0]]
for l in raw_lines[1:]:
if l.startswith('{') or l.startswith('}'):
lines.append(l)
else:
lines[-1] += '\\n' + l
result = lines[:1]
stack = [0]
stackcnt = [0]
for line in lines[1:]:
if line.startswith('{'):
if stackcnt[-1]:
s = 'and '
else:
s = 'where '
stack.append(len(result))
stackcnt[-1] += 1
stackcnt.append(0)
result.append(' +' + ' '*(len(stack)-1) + s + line[1:])
else:
assert line.startswith('}')
stack.pop()
stackcnt.pop()
E result[stack[-1]] += line[1:]
> IndexError: list index out of range
[/usr/lib/python2.4/site-packages/py/magic/exprinfo.py:78]
_______________________________________________________________
____________________________________________________________________________________
Be a better Globetrotter. Get better travel answers from someone who knows. Yahoo! Answers - Check it out.
http://answers.yahoo.com/dir/?link=list&sid=396545469
More information about the Pytest-dev
mailing list