diff --git a/README.md b/README.md index 5e45059..eb0a343 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ and pairing with smart people at Hashrocket. For a steady stream of TILs, [sign up for my newsletter](https://tinyletter.com/jbranchaud). -_913 TILs and counting..._ +_914 TILs and counting..._ --- @@ -520,6 +520,7 @@ _913 TILs and counting..._ ### Python - [Access Instance Variables](python/access-instance-variables.md) +- [Test A Function With Pytest](python/test-a-function-with-pytest.md) ### Rails diff --git a/python/test-a-function-with-pytest.md b/python/test-a-function-with-pytest.md new file mode 100644 index 0000000..87940b6 --- /dev/null +++ b/python/test-a-function-with-pytest.md @@ -0,0 +1,33 @@ +# Test A Function With Pytest + +The [`pytest` framework](https://docs.pytest.org/en/latest/index.html) is a +solid choice for unit testing your python project. + +Any file whose name is preceeded with `test_` that contains functions whose +names are preceeded with `test_` will be processed and executed by the pytest +test runner. + +```python +# test_taco.py + +def taco(day): + return "Taco " + day + +def test_taco_tuesday(): + assert taco("Tuesday") == "Taco Tuesday" # passes + +def test_taco_blank(): + assert taco("") == "Taco" # fails, missing trailing space +``` + +Use `assert` statements to check that a comparison is `true`. If it isn't the +`assert` statement will result in a test failure with some output about what +went wrong. + +Ensure you have `pytest` installed and then run the following from your project +directory: + +```bash +$ pytest +#=> ... you'll see the test output below +```