Podchaser Logo
Podchaser Logo
Charts
147: Testing Single File Python Applications/Scripts with pytest and coverage

147: Testing Single File Python Applications/Scripts with pytest and coverage

Released Saturday, 6th March 2021
Good episode? Give it some love!
147: Testing Single File Python Applications/Scripts with pytest and coverage

147: Testing Single File Python Applications/Scripts with pytest and coverage

147: Testing Single File Python Applications/Scripts with pytest and coverage

147: Testing Single File Python Applications/Scripts with pytest and coverage

Saturday, 6th March 2021
Good episode? Give it some love!
Rate Episode
List

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:

  • 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 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





Show More
Rate
List

Join Podchaser to...

  • Rate podcasts and episodes
  • Follow podcasts and creators
  • Create podcast and episode lists
  • & much more
Do you host or manage this podcast?
Claim and edit this page to your liking.
,