Pytest - My Cheat Sheet

Pytest minimum example


def test_something():
    assert True

Parametrize example

Creating multiple tests with a single function

import pytest

def is_even(input):
    if input % 2 == 0:
        return True
    return False

@pytest.mark.parametrize("input,expected", [
    (2, True),
    (3, False),
    (11, False),
def test_is_even(input, expected):
    assert is_even(input) == expected

Assert raises an error

import pytest

def do_something(input):
    if input == 0:
        raise ValueError('A very specific bad thing happened.')
    return True

def test_do_something():
    with pytest.raises(ValueError):

Basic example of fixtures

import pytest

def user():
    return {
        'name': 'John Snow',
        'email': '[email protected]'

def test_do_something(user):
    assert user['name'] == 'John Snow'