[svn r37862] Move Skipped/Failed/Passed out of public namespace

--HG--
branch : trunk
This commit is contained in:
fijal 2007-02-03 13:14:46 +01:00
parent 2fe1fa07ff
commit 9b62f2290c
15 changed files with 99 additions and 79 deletions

View File

@ -9,8 +9,8 @@ version = "0.8.80-alpha2"
initpkg(__name__, initpkg(__name__,
description = "py.test and the py lib", description = "py.test and the py lib",
revision = int('$LastChangedRevision: 37741 $'.split(':')[1][:-1]), revision = int('$LastChangedRevision: 37862 $'.split(':')[1][:-1]),
lastchangedate = '$LastChangedDate: 2007-02-01 16:20:39 +0100 (Thu, 01 Feb 2007) $', lastchangedate = '$LastChangedDate: 2007-02-03 13:14:46 +0100 (Sat, 03 Feb 2007) $',
version = version, version = version,
url = "http://codespeak.net/py", url = "http://codespeak.net/py",
download_url = "http://codespeak.net/download/py/%s.tar.gz" %(version,), download_url = "http://codespeak.net/download/py/%s.tar.gz" %(version,),
@ -27,6 +27,7 @@ initpkg(__name__,
'test.skip' : ('./test/item.py', 'skip'), 'test.skip' : ('./test/item.py', 'skip'),
'test.fail' : ('./test/item.py', 'fail'), 'test.fail' : ('./test/item.py', 'fail'),
'test.exit' : ('./test/session.py', 'exit'), 'test.exit' : ('./test/session.py', 'exit'),
'test.pdb' : ('./test/pdbplus.py', 'start_pdb'),
# configuration/initialization related test api # configuration/initialization related test api
'test.config' : ('./test/config.py', 'config_per_process'), 'test.config' : ('./test/config.py', 'config_per_process'),

View File

@ -1,12 +1,13 @@
import py import py
failure_demo = py.magic.autopath().dirpath('failure_demo.py') failure_demo = py.magic.autopath().dirpath('failure_demo.py')
from py.__.test.outcome import Failed, Passed
def test_failure_demo_fails_properly(): def test_failure_demo_fails_properly():
config = py.test.config._reparse([failure_demo]) config = py.test.config._reparse([failure_demo])
session = config.initsession() session = config.initsession()
session.main() session.main()
l = session.getitemoutcomepairs(py.test.Item.Failed) l = session.getitemoutcomepairs(Failed)
assert len(l) == 21 assert len(l) == 21
l = session.getitemoutcomepairs(py.test.Item.Passed) l = session.getitemoutcomepairs(Passed)
assert not l assert not l

View File

@ -1,5 +1,6 @@
import py import py
from py.__.test.outcome import Skipped, Failed, Passed
def setup_module(mod): def setup_module(mod):
mod.tmpdir = py.test.ensuretemp('docdoctest') mod.tmpdir = py.test.ensuretemp('docdoctest')
@ -30,10 +31,10 @@ def test_doctest_basic():
config = py.test.config._reparse([xtxt]) config = py.test.config._reparse([xtxt])
session = config.initsession() session = config.initsession()
session.main() session.main()
l = session.getitemoutcomepairs(py.test.Item.Failed) l = session.getitemoutcomepairs(Failed)
assert len(l) == 0 assert len(l) == 0
l = session.getitemoutcomepairs(py.test.Item.Passed) l = session.getitemoutcomepairs(Passed)
l2 = session.getitemoutcomepairs(py.test.Item.Skipped) l2 = session.getitemoutcomepairs(Skipped)
assert len(l+l2) == 2 assert len(l+l2) == 2
def test_doctest_eol(): def test_doctest_eol():
@ -45,10 +46,10 @@ def test_doctest_eol():
config = py.test.config._reparse([ytxt]) config = py.test.config._reparse([ytxt])
session = config.initsession() session = config.initsession()
session.main() session.main()
l = session.getitemoutcomepairs(py.test.Item.Failed) l = session.getitemoutcomepairs(Failed)
assert len(l) == 0 assert len(l) == 0
l = session.getitemoutcomepairs(py.test.Item.Passed) l = session.getitemoutcomepairs(Passed)
l2 = session.getitemoutcomepairs(py.test.Item.Skipped) l2 = session.getitemoutcomepairs(Skipped)
assert len(l+l2) == 2 assert len(l+l2) == 2
def test_js_ignore(): def test_js_ignore():
@ -63,10 +64,10 @@ def test_js_ignore():
config = py.test.config._reparse([xtxt]) config = py.test.config._reparse([xtxt])
session = config.initsession() session = config.initsession()
session.main() session.main()
l = session.getitemoutcomepairs(py.test.Item.Failed) l = session.getitemoutcomepairs(Failed)
assert len(l) == 0 assert len(l) == 0
l = session.getitemoutcomepairs(py.test.Item.Passed) l = session.getitemoutcomepairs(Passed)
l2 = session.getitemoutcomepairs(py.test.Item.Skipped) l2 = session.getitemoutcomepairs(Skipped)
assert len(l+l2) == 3 assert len(l+l2) == 3
def test_resolve_linkrole(): def test_resolve_linkrole():

View File

@ -56,27 +56,6 @@ class Collector(object):
Generator = configproperty('Generator') Generator = configproperty('Generator')
_stickyfailure = None _stickyfailure = None
class Outcome:
def __init__(self, msg=None, excinfo=None):
self.msg = msg
self.excinfo = excinfo
def __repr__(self):
if self.msg:
return self.msg
return "<%s instance>" %(self.__class__.__name__,)
__str__ = __repr__
class Passed(Outcome):
pass
class Failed(Outcome):
pass
class ExceptionFailure(Failed):
def __init__(self, expr, expected, msg=None, excinfo=None):
Collector.Failed.__init__(self, msg=msg, excinfo=excinfo)
self.expr = expr
self.expected = expected
class Skipped(Outcome):
pass
def __repr__(self): def __repr__(self):
return "<%s %r>" %(self.__class__.__name__, self.name) return "<%s %r>" %(self.__class__.__name__, self.name)

View File

@ -1,6 +1,7 @@
import py import py
from inspect import isclass, ismodule from inspect import isclass, ismodule
from py.__.test.outcome import Skipped, Failed, Passed
_dummy = object() _dummy = object()
@ -101,10 +102,10 @@ class Function(Item):
def skip(msg="unknown reason"): def skip(msg="unknown reason"):
""" skip with the given Message. """ """ skip with the given Message. """
__tracebackhide__ = True __tracebackhide__ = True
raise py.test.Item.Skipped(msg=msg) raise Skipped(msg=msg)
def fail(msg="unknown failure"): def fail(msg="unknown failure"):
""" fail with the given Message. """ """ fail with the given Message. """
__tracebackhide__ = True __tracebackhide__ = True
raise py.test.Item.Failed(msg=msg) raise Failed(msg=msg)

29
py/test/outcome.py Normal file
View File

@ -0,0 +1,29 @@
""" File defining possible outcomes of running
"""
class Outcome:
def __init__(self, msg=None, excinfo=None):
self.msg = msg
self.excinfo = excinfo
def __repr__(self):
if self.msg:
return self.msg
return "<%s instance>" %(self.__class__.__name__,)
__str__ = __repr__
class Passed(Outcome):
pass
class Failed(Outcome):
pass
class ExceptionFailure(Failed):
def __init__(self, expr, expected, msg=None, excinfo=None):
Failed.__init__(self, msg=msg, excinfo=excinfo)
self.expr = expr
self.expected = expected
class Skipped(Outcome):
pass

View File

@ -1,6 +1,6 @@
import sys import sys
import py import py
ExceptionFailure = py.test.Item.ExceptionFailure from py.__.test.outcome import ExceptionFailure
def raises(ExpectedException, *args, **kwargs): def raises(ExpectedException, *args, **kwargs):
""" raise AssertionError, if target code does not raise the expected """ raise AssertionError, if target code does not raise the expected

View File

@ -6,6 +6,7 @@ import py, os
from py.__.test.rsession.outcome import Outcome, ReprOutcome from py.__.test.rsession.outcome import Outcome, ReprOutcome
from py.__.test.rsession.box import Box from py.__.test.rsession.box import Box
from py.__.test.rsession import report from py.__.test.rsession import report
from py.__.test.outcome import Skipped, Failed
class RunExecutor(object): class RunExecutor(object):
""" Same as in executor, but just running run """ Same as in executor, but just running run
@ -26,7 +27,7 @@ class RunExecutor(object):
try: try:
self.run() self.run()
outcome = Outcome() outcome = Outcome()
except py.test.Item.Skipped, e: except Skipped, e:
outcome = Outcome(skipped=str(e)) outcome = Outcome(skipped=str(e))
except (KeyboardInterrupt, SystemExit): except (KeyboardInterrupt, SystemExit):
raise raise

View File

@ -17,6 +17,7 @@ from py.__.test.rsession.local import local_loop, plain_runner, apigen_runner,\
box_runner box_runner
from py.__.test.rsession.reporter import LocalReporter, RemoteReporter from py.__.test.rsession.reporter import LocalReporter, RemoteReporter
from py.__.test.session import Session from py.__.test.session import Session
from py.__.test.outcome import Skipped, Failed
class AbstractSession(Session): class AbstractSession(Session):
""" """
@ -84,7 +85,7 @@ class AbstractSession(Session):
excinfo, item = data excinfo, item = data
if excinfo is None: if excinfo is None:
reporter(report.ItemStart(item)) reporter(report.ItemStart(item))
elif excinfo.type is py.test.Item.Skipped: elif excinfo.type is Skipped:
reporter(report.SkippedTryiter(excinfo, item)) reporter(report.SkippedTryiter(excinfo, item))
else: else:
reporter(report.FailedTryiter(excinfo, item)) reporter(report.FailedTryiter(excinfo, item))

View File

@ -1,4 +1,5 @@
import py import py
from py.__.test.outcome import Outcome, Failed, Passed, Skipped
class Session(object): class Session(object):
""" """
@ -82,17 +83,17 @@ class Session(object):
outcome = self.run(colitem) outcome = self.run(colitem)
except (KeyboardInterrupt, Exit): except (KeyboardInterrupt, Exit):
raise raise
except colitem.Outcome, outcome: except Outcome, outcome:
if outcome.excinfo is None: if outcome.excinfo is None:
outcome.excinfo = py.code.ExceptionInfo() outcome.excinfo = py.code.ExceptionInfo()
except: except:
excinfo = py.code.ExceptionInfo() excinfo = py.code.ExceptionInfo()
outcome = colitem.Failed(excinfo=excinfo) outcome = Failed(excinfo=excinfo)
assert (outcome is None or assert (outcome is None or
isinstance(outcome, (list, colitem.Outcome))) isinstance(outcome, (list, Outcome)))
finally: finally:
self.finish(colitem, outcome) self.finish(colitem, outcome)
if isinstance(outcome, colitem.Failed) and self.config.option.exitfirst: if isinstance(outcome, Failed) and self.config.option.exitfirst:
py.test.exit("exit on first problem configured.", item=colitem) py.test.exit("exit on first problem configured.", item=colitem)
finally: finally:
colitem.finishcapture() colitem.finishcapture()
@ -104,7 +105,7 @@ class Session(object):
colitem.skipbykeyword(self.config.option.keyword) colitem.skipbykeyword(self.config.option.keyword)
res = colitem.run() res = colitem.run()
if res is None: if res is None:
return py.test.Item.Passed() return Passed()
elif not isinstance(res, (list, tuple)): elif not isinstance(res, (list, tuple)):
raise TypeError("%r.run() returned neither " raise TypeError("%r.run() returned neither "
"list, tuple nor None: %r" % (colitem, res)) "list, tuple nor None: %r" % (colitem, res))

View File

@ -1,7 +1,8 @@
from __future__ import generators from __future__ import generators
import py import py
from py.__.test.session import Session from py.__.test.session import Session
from py.__.test.terminal.out import getout from py.__.test.terminal.out import getout
from py.__.test.outcome import Failed, Passed, Skipped
def checkpyfilechange(rootdir, statcache={}): def checkpyfilechange(rootdir, statcache={}):
""" wait until project files are changed. """ """ wait until project files are changed. """
@ -135,6 +136,6 @@ def slaverun_TerminalSession(channel):
session.shouldclose = channel.isclosed session.shouldclose = channel.isclosed
print "SLAVE: starting session.main()" print "SLAVE: starting session.main()"
session.main() session.main()
failures = session.getitemoutcomepairs(py.test.Item.Failed) failures = session.getitemoutcomepairs(Failed)
failures = [config.get_collector_trail(item) for item,_ in failures] failures = [config.get_collector_trail(item) for item,_ in failures]
channel.send(failures) channel.send(failures)

View File

@ -4,6 +4,7 @@ from time import time as now
Item = py.test.Item Item = py.test.Item
from py.__.test.terminal.out import getout from py.__.test.terminal.out import getout
from py.__.test.representation import Presenter from py.__.test.representation import Presenter
from py.__.test.outcome import Skipped, Passed, Failed
def getrelpath(source, dest): def getrelpath(source, dest):
base = source.common(dest) base = source.common(dest)
@ -167,14 +168,14 @@ class TerminalSession(Session):
# progress information # progress information
# -------------------- # --------------------
typemap = { typemap = {
Item.Passed: '.', Passed: '.',
Item.Skipped: 's', Skipped: 's',
Item.Failed: 'F', Failed: 'F',
} }
namemap = { namemap = {
Item.Passed: 'ok', Passed: 'ok',
Item.Skipped: 'SKIP', Skipped: 'SKIP',
Item.Failed: 'FAIL', Failed: 'FAIL',
} }
def repr_progress_short_result(self, item, outcome): def repr_progress_short_result(self, item, outcome):
@ -194,11 +195,11 @@ class TerminalSession(Session):
return 'UNKNOWN' return 'UNKNOWN'
def repr_progress_module_result(self, item, outcome): def repr_progress_module_result(self, item, outcome):
if isinstance(outcome, py.test.Item.Failed): if isinstance(outcome, Failed):
return "FAILED TO LOAD MODULE" return "FAILED TO LOAD MODULE"
elif isinstance(outcome, py.test.Item.Skipped): elif isinstance(outcome, Skipped):
return "skipped" return "skipped"
elif not isinstance(outcome, (list, py.test.Item.Passed)): elif not isinstance(outcome, (list, Passed)):
return "?" return "?"
# -------------------- # --------------------
@ -207,7 +208,7 @@ class TerminalSession(Session):
def summaryline(self): def summaryline(self):
outlist = [] outlist = []
sum = 0 sum = 0
for typ in Item.Passed, Item.Failed, Item.Skipped: for typ in Passed, Failed, Skipped:
l = self.getitemoutcomepairs(typ) l = self.getitemoutcomepairs(typ)
if l: if l:
outlist.append('%d %s' % (len(l), typ.__name__.lower())) outlist.append('%d %s' % (len(l), typ.__name__.lower()))
@ -232,7 +233,7 @@ class TerminalSession(Session):
def skippedreasons(self): def skippedreasons(self):
texts = {} texts = {}
for colitem, outcome in self.getitemoutcomepairs(Item.Skipped): for colitem, outcome in self.getitemoutcomepairs(Skipped):
raisingtb = self.getlastvisible(outcome.excinfo.traceback) raisingtb = self.getlastvisible(outcome.excinfo.traceback)
fn = raisingtb.frame.code.path fn = raisingtb.frame.code.path
lineno = raisingtb.lineno lineno = raisingtb.lineno
@ -251,7 +252,7 @@ class TerminalSession(Session):
def failures(self): def failures(self):
if self.config.option.tbstyle == 'no': if self.config.option.tbstyle == 'no':
return # skip the detailed failure reports altogether return # skip the detailed failure reports altogether
l = self.getitemoutcomepairs(Item.Failed) l = self.getitemoutcomepairs(Failed)
if l: if l:
self.out.sep('_') self.out.sep('_')
for colitem, outcome in l: for colitem, outcome in l:

View File

@ -1,6 +1,7 @@
from __future__ import generators from __future__ import generators
import py import py
from setupdata import setupdatadir from setupdata import setupdatadir
from py.__.test.outcome import Skipped, Failed, Passed, Outcome
def setup_module(mod): def setup_module(mod):
mod.datadir = setupdatadir() mod.datadir = setupdatadir()
@ -205,7 +206,7 @@ def test_custom_python_collection_from_conftest():
out = py.std.cStringIO.StringIO() out = py.std.cStringIO.StringIO()
session = config._getsessionclass()(config, out) session = config._getsessionclass()(config, out)
session.main() session.main()
l = session.getitemoutcomepairs(py.test.Item.Passed) l = session.getitemoutcomepairs(Passed)
assert len(l) == 2 assert len(l) == 2
finally: finally:
old.chdir() old.chdir()
@ -215,7 +216,7 @@ def test_custom_python_collection_from_conftest():
out = py.std.cStringIO.StringIO() out = py.std.cStringIO.StringIO()
session = config._getsessionclass()(config, out) session = config._getsessionclass()(config, out)
session.main() session.main()
l = session.getitemoutcomepairs(py.test.Item.Passed) l = session.getitemoutcomepairs(Passed)
assert len(l) == 2 assert len(l) == 2
def test_custom_NONpython_collection_from_conftest(): def test_custom_NONpython_collection_from_conftest():
@ -252,7 +253,7 @@ def test_custom_NONpython_collection_from_conftest():
out = py.std.cStringIO.StringIO() out = py.std.cStringIO.StringIO()
session = config._getsessionclass()(config, out) session = config._getsessionclass()(config, out)
session.main() session.main()
l = session.getitemoutcomepairs(py.test.Item.Passed) l = session.getitemoutcomepairs(Passed)
assert len(l) == 1 assert len(l) == 1
finally: finally:
old.chdir() old.chdir()
@ -262,7 +263,7 @@ def test_custom_NONpython_collection_from_conftest():
out = py.std.cStringIO.StringIO() out = py.std.cStringIO.StringIO()
session = config._getsessionclass()(config, out) session = config._getsessionclass()(config, out)
session.main() session.main()
l = session.getitemoutcomepairs(py.test.Item.Passed) l = session.getitemoutcomepairs(Passed)
assert len(l) == 1 assert len(l) == 1
def test_order_of_execution_generator_same_codeline(): def test_order_of_execution_generator_same_codeline():

View File

@ -1,6 +1,7 @@
import py import py
from py.__.test.doctest import DoctestText from py.__.test.doctest import DoctestText
from py.__.test.outcome import Skipped, Failed, Passed, Outcome
def test_simple_docteststring(): def test_simple_docteststring():
testitem = DoctestText(name="dummy", parent=None) testitem = DoctestText(name="dummy", parent=None)
@ -19,7 +20,7 @@ def test_simple_docteststring_failing():
>>> i + 1 >>> i + 1
2 2
""") """)
py.test.raises(py.test.Item.Failed, "testitem.run()") py.test.raises(Failed, "testitem.run()")
def test_collect_doctest_files_with_test_prefix(): def test_collect_doctest_files_with_test_prefix():

View File

@ -1,5 +1,6 @@
import py import py
from setupdata import setup_module # sets up global 'tmpdir' from setupdata import setup_module # sets up global 'tmpdir'
from py.__.test.outcome import Skipped, Failed, Passed, Outcome
implied_options = { implied_options = {
'--pdb': 'usepdb and nocapture', '--pdb': 'usepdb and nocapture',
@ -44,9 +45,9 @@ def runfiletest(opts):
config = py.test.config._reparse(opts + [datadir/'filetest.py']) config = py.test.config._reparse(opts + [datadir/'filetest.py'])
session = config.initsession() session = config.initsession()
session.main() session.main()
l = session.getitemoutcomepairs(py.test.Item.Failed) l = session.getitemoutcomepairs(Failed)
assert len(l) == 2 assert len(l) == 2
l = session.getitemoutcomepairs(py.test.Item.Passed) l = session.getitemoutcomepairs(Passed)
assert not l assert not l
class TestKeywordSelection: class TestKeywordSelection:
@ -56,11 +57,11 @@ class TestKeywordSelection:
'-k', keyword]) '-k', keyword])
session = config._getsessionclass()(config, py.std.sys.stdout) session = config._getsessionclass()(config, py.std.sys.stdout)
session.main() session.main()
l = session.getitemoutcomepairs(py.test.Item.Failed) l = session.getitemoutcomepairs(Failed)
assert len(l) == 1 assert len(l) == 1
item = l[0][0] item = l[0][0]
assert item.name == 'test_one' assert item.name == 'test_one'
l = session.getitemoutcomepairs(py.test.Item.Skipped) l = session.getitemoutcomepairs(Skipped)
assert len(l) == 1 assert len(l) == 1
def test_select_extra_keywords(self): def test_select_extra_keywords(self):
@ -86,10 +87,10 @@ class TestKeywordSelection:
session = config._getsessionclass()(config, f) session = config._getsessionclass()(config, f)
session.main() session.main()
print "keyword", repr(keyword) print "keyword", repr(keyword)
l = session.getitemoutcomepairs(py.test.Item.Passed) l = session.getitemoutcomepairs(Passed)
assert len(l) == 1 assert len(l) == 1
assert l[0][0].name == 'test_2' assert l[0][0].name == 'test_2'
l = session.getitemoutcomepairs(py.test.Item.Skipped) l = session.getitemoutcomepairs(Skipped)
assert l[0][0].name == 'test_1' assert l[0][0].name == 'test_1'
class TestTerminalSession: class TestTerminalSession:
@ -104,13 +105,13 @@ class TestTerminalSession:
def test_terminal(self): def test_terminal(self):
session = self.mainsession(datadir / 'filetest.py') session = self.mainsession(datadir / 'filetest.py')
out = self.file.getvalue() out = self.file.getvalue()
l = session.getitemoutcomepairs(py.test.Item.Failed) l = session.getitemoutcomepairs(Failed)
assert len(l) == 2 assert len(l) == 2
assert out.find('2 failed') != -1 assert out.find('2 failed') != -1
def test_syntax_error_module(self): def test_syntax_error_module(self):
session = self.mainsession(datadir / 'syntax_error.py') session = self.mainsession(datadir / 'syntax_error.py')
l = session.getitemoutcomepairs(py.test.Item.Failed) l = session.getitemoutcomepairs(Failed)
assert len(l) == 1 assert len(l) == 1
out = self.file.getvalue() out = self.file.getvalue()
assert out.find(str('syntax_error.py')) != -1 assert out.find(str('syntax_error.py')) != -1
@ -120,9 +121,9 @@ class TestTerminalSession:
session = self.mainsession("--exitfirst", session = self.mainsession("--exitfirst",
datadir / 'filetest.py') datadir / 'filetest.py')
assert session.config.option.exitfirst assert session.config.option.exitfirst
l = session.getitemoutcomepairs(py.test.Item.Failed) l = session.getitemoutcomepairs(Failed)
assert len(l) == 1 assert len(l) == 1
l = session.getitemoutcomepairs(py.test.Item.Passed) l = session.getitemoutcomepairs(Passed)
assert not l assert not l
def test_collectonly(self): def test_collectonly(self):
@ -131,7 +132,7 @@ class TestTerminalSession:
assert session.config.option.collectonly assert session.config.option.collectonly
out = self.file.getvalue() out = self.file.getvalue()
#print out #print out
l = session.getitemoutcomepairs(py.test.Item.Failed) l = session.getitemoutcomepairs(Failed)
#if l: #if l:
# x = l[0][1].excinfo # x = l[0][1].excinfo
# print x.exconly() # print x.exconly()
@ -195,7 +196,7 @@ class TestTerminalSession:
self._testmycapture = self._mycapture.reset() self._testmycapture = self._mycapture.reset()
""")) """))
session = self.mainsession(o) session = self.mainsession(o)
l = session.getitemoutcomepairs(py.test.Item.Passed) l = session.getitemoutcomepairs(Passed)
assert len(l) == 1 assert len(l) == 1
item = l[0][0] item = l[0][0]
assert hasattr(item, '_testmycapture') assert hasattr(item, '_testmycapture')
@ -250,9 +251,9 @@ class TestTerminalSession:
""")) """))
session = self.mainsession(o) session = self.mainsession(o)
l = session.getitemoutcomepairs(py.test.Item.Failed) l = session.getitemoutcomepairs(Failed)
assert len(l) == 0 assert len(l) == 0
l = session.getitemoutcomepairs(py.test.Item.Passed) l = session.getitemoutcomepairs(Passed)
assert len(l) == 7 assert len(l) == 7
# also test listnames() here ... # also test listnames() here ...
item, result = l[-1] item, result = l[-1]
@ -273,7 +274,7 @@ class TestTerminalSession:
a = 1 a = 1
""")) """))
session = self.mainsession(o) session = self.mainsession(o)
l = session.getitemoutcomepairs(py.test.Item.Failed) l = session.getitemoutcomepairs(Failed)
assert len(l) == 1 assert len(l) == 1
item, outcome = l[0] item, outcome = l[0]
assert str(outcome.excinfo).find('does_not_work') != -1 assert str(outcome.excinfo).find('does_not_work') != -1
@ -284,7 +285,7 @@ class TestTerminalSession:
print 'Output of simulated "py.test brokenrepr.py":' print 'Output of simulated "py.test brokenrepr.py":'
print out print out
l = session.getitemoutcomepairs(py.test.Item.Failed) l = session.getitemoutcomepairs(Failed)
assert len(l) == 2 assert len(l) == 2
assert out.find("""[Exception("Ha Ha fooled you, I'm a broken repr().") raised in repr()]""") != -1 #' assert out.find("""[Exception("Ha Ha fooled you, I'm a broken repr().") raised in repr()]""") != -1 #'
assert out.find("[unknown exception raised in repr()]") != -1 assert out.find("[unknown exception raised in repr()]") != -1