Show notes
Have you ever written a single file Python application or script?
Do you check code coverage?
This is the topic of this weeks episode, spurred on by a listener question.
The questions:
- For single file scripts, I'd like to have the test code included right there in the file. Can I do that with pytest?
- If I can, can I use code coverage on it?
The example code discussed in the episode: script.py
def foo(): return 5def 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.pydef test_foo(): assert foo() == 5def 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 pytestSponsored By:
- PyCharm Professional: Try PyCharm Pro for 4 months and learn how PyCharm will save you time. Promo Code: TESTANDCODE22

