Pytest can be used to test whether a function raises an exception. For instance, consider a division function that raises a ZeroDivisionError
if there is an attempt to divide by zero:
def divide(x, y):
return x / y
divide(9, 0)
Attempting to execute this function with zero as the divisor results in a ZeroDivisionError
:
Traceback (most recent call last):
File "/users/stanley/code.py", line 5, in <module>
divide(9, 0)
File "/users/stanley/code.py", line 2, in divide
return x / y
~~^~~
ZeroDivisionError: division by zero
To verify that this exception is raised as expected, use the pytest.raises
in a test case:
import pytest
def divide(x, y):
return x / y
def test_zero_division():
with pytest.raises(ZeroDivisionError):
divide(9, 0)
When this test is run, it confirms that the divide()
function behaves as expected by successfully raising a ZeroDivisionError
when dividing by zero, indicated by a passing test result:
...
collected 1 item
test.py::test_zero_division PASSED [100%]
============================== 1 passed in 0.00s ===============================
-
How to Solve the ModuleNotFoundError With Pytest?
To fix the ModuleNotFoundError in pytest, you can start by making your tests directory a Python package.This can be achieved by including an empty __init__.py file to the directory: └── tests/ ...
Questions -
How to Debug Pytest With pdb Breakpoints?
To debug a pytest test using pdb, you can manually insert a breakpoint by adding import pdb; pdb.set_trace() in your test: import pytest def divide(x, y): return x / y def testzerodivision(): ...
Questions -
How to Disable a Test Using Pytest?
If you need to disable a specific test when running your test suite with pytest, use the pytest skip decorator. Suppose you have the following tests in your test suite: import pytest def test_addit...
Questions -
How to Test a Single File Under Pytest
To run a single test file with pytest, use the command pytest followed by the file path: pytest tests/test_file.py To execute a specific test within that file, append :: and the test name to the fi...
Questions
Make your mark
Join the writer's program
Are you a developer and love writing and sharing your knowledge with the world? Join our guest writing program and get paid for writing amazing technical guides. We'll get them to the right readers that will appreciate them.
Write for usBuild on top of Better Stack
Write a script, app or project on top of Better Stack and share it with the world. Make a public repository and share it with us at our email.
community@betterstack.comor submit a pull request and help us build better products for everyone.
See the full list of amazing projects on github