Pytest - My Cheat Sheet

Pytest minimum example

# test_basic.py

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):
        do_something(0)

Basic example of fixtures

import pytest

@pytest.fixture
def user():
    return {
        'name': 'John Snow',
        'email': '[email protected]'
    }

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

Cheers!
Letícia

Comments