pytest-finer-verdicts
=====================

A pytest plugin to treat non-assertion failures as test errors.

Getting the plugin
==================

The plugin can be installed via ``pip install pytest-finer-verdicts``.
Similarly, it can be uninstalled via
``pip uninstall pytest-finer-verdicts``.

Usage
-----

Consider the following snippet in a file *test.py* (available as
*temp/test.py* in the repository).

::

    import pytest


    def test_pass():
        assert 70 <= 75


    def test_fail():
        assert 75 <= 70


    def test_error():
        raise RuntimeError()


    def test_pytest_fail():
        pytest.fail("Fail")


    def test_pytest_raises():
        with pytest.raises(ValueError):
            raise IndexError()

**Without pytest-finer-verdicts plugin**, ``py.test test.py -v`` will
produce the following output.

::

    collected 5 items 

    test.py::test_pass PASSED
    test.py::test_fail FAILED
    test.py::test_error ERROR
    test.py::test_pytest_fail FAILED
    test.py::test_pytest_raises ERROR

    ================================== ERRORS ===================================
    _______________________ ERROR at setup of test_error ________________________

        def test_error():
    >       raise RuntimeError()
    E       RuntimeError

    test.py:13: RuntimeError
    ___________________ ERROR at setup of test_pytest_raises ____________________

        def test_pytest_raises():
            with pytest.raises(ValueError):
    >           raise IndexError()
    E           IndexError

    test.py:22: IndexError
    ================================= FAILURES ==================================
    _________________________________ test_fail _________________________________

        def test_fail():
    >       assert 75 <= 70
    E       assert 75 <= 70

    test.py:9: AssertionError
    _____________________________ test_pytest_fail ______________________________

        def test_pytest_fail():
    >       pytest.fail("Fail")
    E       Failed: Fail

    test.py:17: Failed
    ================ 2 failed, 1 passed, 2 error in 0.05 seconds ================

Notice how ``test_error`` and ``test_pytest_raises`` are flagged as
*test errors* by the plugin.
