Testing guidelines
Writing unit tests
Some general hints:
Tests should run with just Python Standard Library modules installed (i.e. if there are additional requirements, the test should be skipped if those are missing)
Tests should run even if there is no network connectivity (please mock urllib calls, for example)
Tests should be stable and not require modifications every time the tested code’s implementation changes slightly (been there / done that)
Right now, bumblebee-status
uses the pytest
framework, and its
unit tests are located inside the tests/
subdirectory.
First implication: To run the new tests, you need to have pytest
installed, it is not part of the Python Standard Library. Most
distributions call the package python-pytest
or python3-pytest
or something similar (or you just use pip install --use pytest
)
Aside from that, you just write your tests using pytest
as usual,
with one big caveat:
If you create a new directory inside tests/
, you need to
also create a file called __init__.py
inside that, otherwise,
modules won’t load correctly.
For examples, just browse the existing code. A good, minimal sample
for unit testing bumblebee-status
is tests/core/test_event.py
.