Skip to main content

pytest-exceptional

https://img.shields.io/pypi/v/pytest-exceptional.svg https://img.shields.io/pypi/pyversions/pytest-exceptional.svg See Build Status on Travis CI See Build Status on AppVeyor

Better pytest Exceptions

This plugin attempts to make richer pytest exceptions a snap to write. For example, consider the following exception:

class StartFire(pytest.Exception):
    __teststatus__ = 'fire', '🔥', ('FIRE', {'purple': True, 'bold': True})

    def toterminal(self, longrepr, tw):
        tw.line("FIRE! Please evacuate the building!")
        longrepr.toterminal(tw)

    def summary_header(self, header):
        return "Fire started during {}".format(header)

When this specific exception class is thrown, the pretty printing and result categorization is now in the hands of the exception, making it more straightforward than writing special purpose plugins.:

============================= test session starts ==============================
platform linux -- Python 3.6.0, pytest-3.0.7, py-1.4.32, pluggy-0.4.0
cachedir: .cache
rootdir: /home/simon/src/pytest-exceptional, inifile:
plugins: exceptional-0.1.0
collected 1 items

tests/test_fail_test.py::test_fire FIRE

________________________ Fire started during test_fire _________________________
FIRE! Please evacuate the building!

    def test_fire():
>       raise StartFire('There is a fire')
E       test_fail_test.StartFire: There is a fire

tests/test_fail_test.py:47: StartFire
============================ 1 fire in 0.02 seconds ============================

TODO

Provide more control over formatting and presentation without making the API too cumbersome. Still very much an early prototype and probably not close to a stable API.

Installation

You can install “pytest-exceptional” via pip from PyPI:

$ pip install pytest-exceptional

Contributing

Contributions are very welcome. Tests can be run with tox, please ensure the coverage at least stays the same before you submit a pull request.

License

Distributed under the terms of the MIT license, “pytest-exceptional” is free and open source software

Issues

If you encounter any problems, please file an issue along with a detailed description.

Release files for pytest-exceptional 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pytest-exceptional 0.1.1
File Size Uploaded
pytest-exceptional-0.1.1.tar.gz 4.7 kB Details

Release files / pytest-exceptional-0.1.1.tar.gz

Download URL pytest-exceptional-0.1.1.tar.gz
Size 4.7 kB
Tags Source
SHA-256 checksum
How to use checksums
0367f7e700f6e4c460b4a4912c0e849a8afb31105a7bbdf2133a89180dfc579c
BLAKE2b-256 checksum
How to use checksums
b0d7bbd6c6ad512ff4b7389439055158dae7409ae8f9696bc6f7f7665e8facb2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.1.1 This release

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page