pytest_notes
Table of Contents
tasks
test a function that writes output to a file
$ cat write_file.py def write_to_file(fname): with open(fname, 'w') as FileObj: FileObj.write('Hello\n') def test_write_to_file(tmpdir): file = tmpdir.join('output.txt') write_to_file(file) contents_got = file.read() contents_expected = 'Hello\n' assert contents_got == contents_expected
$ python -m pytest write_file.py
Ref:
test a script that prints to stdout
tags | python test case for print
snippet 1:
def test_foo(capsys): ... captured = capsys.readouterr() ... assert captured.out == expected_output
snippet 2:
out, error = capsys.readouterr()
Ref:-
- See https://docs.pytest.org/en/stable/capture.html#accessing-captured-output-from-a-test-function for help on how capsys works in pytest.
- https://stackoverflow.com/a/56300627/6305733 - contains a simple example; shows how to use capsys with pytest as well as with unittest; I first came across capsys here.
- my usages:
- https://github.com/KamarajuKusumanchi/rutils/blob/master/python3/tests/lib/test_DataFrameUtils.py - tests dataframe printed to stdout
- https://github.com/KamarajuKusumanchi/rutils/blob/master/python3/tests/test_get_column_names.py - I used capsys for the first time here
run pytest on the current file from the current file
tags | run pytest from main function, pytest run parameterized test
useful links
- https://docs.pytest.org/en/latest/getting-started.html - Get started on pytest
- Source code - https://github.com/pytest-dev/pytest
- Official documentation - https://docs.pytest.org
- http://pythontesting.net - Brian Okken's website on pytest and code testing in general
- To get it from PyPI - https://pypi.python.org/pypi/pytest
- T. Ben Thompson's python testing set up - http://tbenthompson.com/post/how_i_test/
Links related to parameterization:
- Parametrizing fixtures and test functions - https://docs.pytest.org/en/latest/parametrize.html#parametrize-basics
- Parametrizing tests - https://docs.pytest.org/en/latest/example/parametrize.html
- parametrizing tests where functions have default arguments - https://stackoverflow.com/questions/35844791/how-to-write-a-test-for-a-function-with-optional-arguments
pytest_notes.txt · Last modified: 2023/05/06 04:49 by admin