* include type of unhandled pytest exc_repr in error message
This makes triage of such issues a little simpler.
* pytest: expect the more general ExceptionRepr class
This is the (abstract) supertype of the currently-used
ExceptionChainRepr, and defines all of the attributes currently used by
the code.
(This changes results in sensible output for `ReprExceptionInfo`
instances, which is what my pytest invocations were generating.)
* pytest: use pytest_runtest_makereport for consistent exception handling
The `report` passed to `pytest_runtest_logreport` has a different
internal exception representation depending on the `--tb` option with
which `pytest` is configured: some of these representations do not
include the traceback frames to allow us to calculate line numbers.
`pytest_runtest_makereport`, however, has access to the original
`ExceptionInfo` object when an exception is raised: this commit switches
to using a `pytest_runtest_makereport` hookwrapper, so we can access the
pytest-generated report as before, but get exception handling
independent of `--tb` setting.
Fixes: #28