Merge pull request #1746 from pytest-dev/conftest-exception-printing
Conftest exception printing
This commit is contained in:
commit
eaa4ee3fdf
1
AUTHORS
1
AUTHORS
|
@ -61,6 +61,7 @@ Jaap Broekhuizen
|
|||
Jan Balster
|
||||
Janne Vanhala
|
||||
Jason R. Coombs
|
||||
Javier Domingo Cansino
|
||||
John Towler
|
||||
Joshua Bronson
|
||||
Jurko Gospodnetić
|
||||
|
|
|
@ -60,8 +60,6 @@ time or change existing behaviors in order to make them less surprising/more use
|
|||
|
||||
*
|
||||
|
||||
*
|
||||
|
||||
**New Features**
|
||||
|
||||
* Support nose-style ``__test__`` attribute on methods of classes,
|
||||
|
@ -251,6 +249,10 @@ time or change existing behaviors in order to make them less surprising/more use
|
|||
Thanks `@Vogtinator`_ for reporting and `@RedBeardCode`_ and
|
||||
`@tomviner`_ for the PR.
|
||||
|
||||
* ``ConftestImportFailure`` now shows the traceback making it easier to
|
||||
identify bugs in ``conftest.py`` files (`#1516`_). Thanks `@txomon`_ for
|
||||
the PR.
|
||||
|
||||
*
|
||||
|
||||
*
|
||||
|
@ -281,6 +283,7 @@ time or change existing behaviors in order to make them less surprising/more use
|
|||
.. _#1479: https://github.com/pytest-dev/pytest/issues/1479
|
||||
.. _#1502: https://github.com/pytest-dev/pytest/pull/1502
|
||||
.. _#1503: https://github.com/pytest-dev/pytest/issues/1503
|
||||
.. _#1516: https://github.com/pytest-dev/pytest/pull/1516
|
||||
.. _#1519: https://github.com/pytest-dev/pytest/pull/1519
|
||||
.. _#1520: https://github.com/pytest-dev/pytest/pull/1520
|
||||
.. _#1526: https://github.com/pytest-dev/pytest/pull/1526
|
||||
|
@ -333,6 +336,7 @@ time or change existing behaviors in order to make them less surprising/more use
|
|||
.. _@sober7: https://github.com/sober7
|
||||
.. _@tareqalayan: https://github.com/tareqalayan
|
||||
.. _@taschini: https://github.com/taschini
|
||||
.. _@txomon: https://github.com/txomon
|
||||
|
||||
2.9.2
|
||||
=====
|
||||
|
|
|
@ -27,6 +27,12 @@ class ConftestImportFailure(Exception):
|
|||
self.path = path
|
||||
self.excinfo = excinfo
|
||||
|
||||
def __str__(self):
|
||||
etype, evalue, etb = self.excinfo
|
||||
formatted = traceback.format_tb(etb)
|
||||
# The level of the tracebacks we want to print is hand crafted :(
|
||||
return repr(evalue) + '\n' + ''.join(formatted[2:])
|
||||
|
||||
|
||||
def main(args=None, plugins=None):
|
||||
""" return exit code, after performing an in-process test run.
|
||||
|
|
|
@ -408,3 +408,16 @@ def test_issue1073_conftest_special_objects(testdir):
|
|||
""")
|
||||
res = testdir.runpytest()
|
||||
assert res.ret == 0
|
||||
|
||||
|
||||
def test_conftest_exception_handling(testdir):
|
||||
testdir.makeconftest('''
|
||||
raise ValueError()
|
||||
''')
|
||||
testdir.makepyfile("""
|
||||
def test_some():
|
||||
pass
|
||||
""")
|
||||
res = testdir.runpytest()
|
||||
assert res.ret == 4
|
||||
assert 'raise ValueError()' in [line.strip() for line in res.errlines]
|
||||
|
|
Loading…
Reference in New Issue