pytest-notification 0.2.0
A pytest plugin for sending a desktop notification and playing a sound upon completion of tests
License: MIT
Requires Python: >=3.5
Keywords: pytest notification notify notifier message desktop

Pytest-notification
===================

.. Badges have empty alts. So nothing shows up if they do not work.
.. This fixes readthedocs issues with badges.
.. image:: https://img.shields.io/pypi/v/pytest-notification.svg
  :target: https://pypi.org/project/pytest-notification/
  :alt:

.. image:: https://img.shields.io/conda/v/conda-forge/pytest-notification.svg
  :target: https://anaconda.org/conda-forge/pytest-notification
  :alt:

.. image:: https://img.shields.io/pypi/pyversions/pytest-notification.svg
  :target: https://pypi.org/project/pytest-notification/
  :alt:

.. image:: https://img.shields.io/pypi/l/pytest-notification.svg
  :target: https://github.com/rhpvorderman/pytest-notification/blob/master/LICENSE
  :alt:

.. image:: https://travis-ci.org/rhpvorderman/pytest-notification.svg?branch=develop
  :target: https://travis-ci.org/rhpvorderman/pytest-notification
  :alt:

.. image:: https://codecov.io/gh/rhpvorderman/pytest-notification/branch/develop/graph/badge.svg
  :target: https://codecov.io/gh/rhpvorderman/pytest-notification
  :alt:

A plugin for pytest that sends notifications if a ``--notify`` flag is passed
to pytest on the command line. It plays sounds when a ``--sound`` or
``--play-sound`` flag is passed.

The notifications and sounds are different depending whether the test run
has passed or failed.

The messages and sounds are only played when the flags are passed. This allows
you to turn it on only for those tests for which you expect a long time is
needed.

Alternatives
============

`pytest-notifier <https://github.com/ratson/pytest-notifier>`_ always sends
a notification. It can be turned of with ``--notify-off``. This is a
fundamentally different design choice, which is why this package was created.
Pytest-notifier has been around for a long time and is still being actively
maintained. It does not support playing sounds, but it does support Mac OS X
notifications.

Usage
=====

=================================== =======
option                              usage
=================================== =======
``--notify``                        Sends a desktop notification when pytest is finished. (Only implemented on Linux. Requires the 'notify-send' program in PATH on Linux.
``--sound``, ``--play-sound``       Plays a sound when pytest is finished. (Only implemented on Linux and Macintosh systems).
``--disturb``                       shorthand for ``--notify --sound``
=================================== =======

Installation
============

pytest-notification can be installed with ``pip install pytest-notification``.

Linux
-----

On Linux notifications are supported via the ``notify-send`` program. On Debian,
Ubuntu and derived distros this is available in the ``libnotify-bin`` package.

On Linux sound is supported via the ``paplay`` program. On Debian, Ubuntu and
derived distros this available in the ``pulseaudio-utils`` pacakge.

The installation for Ubuntu should be:

.. code-block:: bash

    sudo apt update
    sudo apt install libnotify-bin pulseaudio-utils
    pip install pytest-notification


Mac OS X
--------

On Mac OS X sound is implemented via the ``afplay`` program, which should be
installed by default. Since I do not own a mac I can not test this feature.
pull requests are welcome.

On Mac OS X notifications are not supported.
Alternatively you could take a look at `pytest-notifier
<https://github.com/ratson/pytest-notifier>`_, which does support Mac OS X.

Windows
-------
Windows is not supported.

Contributing
============
Pull requests for improved Mac and Windows support are welcome. As well as ideas
and other pull requests. Simply create a new issue or PR on the `github page
<https://github.com/rhpvorderman/pytest-notification>`_.

Windows  support
----------------
In theory the ``winsound`` module could be used to
play sounds, but this only supports wave files. These are very big and
cumbersome to distribute. I have not actively looked for a way to create a
message on windows. There will probably be some powershell command that can
pull this off. Pull requests are welcome.