Have you ever written a single file Python application or script?
Have you written tests for it?
Do you check code coverage?
This is the topic of this weeks episode, spurred on by a listener question.
The questions:
The example code discussed in the episode: script.py
def foo(): return 5
def main(): x = foo() print(x)
if __name__ == '__main__': # pragma: no cover main()
## test code
# To test: # pip install pytest # pytest script.py
# To test with coverage: # put this file (script.py) in a directory by itself, say foo # then from the parent directory of foo: # pip install pytest-cov # pytest --cov=foo foo/script.py
# To show missing lines # pytest --cov=foo --cov-report=term-missing foo/script.py
def test_foo(): assert foo() == 5
def test_main(capsys):
main()
captured = capsys.readouterr()
assert captured.out == "5\n"
Suggestion by @cfbolz if you need to import pytest:
if __name__ == '__main__': # pragma: no cover
main()
else:
import pytest