Fixtures autouse

Úvod do testování v Pythonu

Alexander Levin

Data Scientist

Argument autouse

  • Volitelný booleovský argument fixture
  • Lze předat dekorátoru fixture
  • Při autouse=True se funkce fixture spustí bez ohledu na žádost
  • Pomáhá snížit počet redundantních volání fixtures
Úvod do testování v Pythonu

Kdy použít

Pokud je třeba aplikovat určitá příprava nebo úpravy prostředí pro všechny testy.

Například pokud chceme zajistit, aby všechny testy:

  • Měly stejná data
  • Měly stejná připojení (data, API atd.)
  • Měly stejnou konfiguraci prostředí
  • Měly monitor, logování nebo profilování

Všechny takové případy by měly být řešeny pomocí argumentu "autouse".

Úvod do testování v Pythonu

Příklad autouse

Příklad fixture s "autouse":

import pytest
import pandas as pd

# Autoused fixture
@pytest.fixture(autouse=True)
def set_pd_options():
    pd.set_option('display.max_columns', 5000)

# Test function
def test_pd_options():
    assert pd.get_option('display.max_columns') == 5000
Úvod do testování v Pythonu

Nesprávný příklad autouse

Nesprávný příklad fixture s "autouse":

import pytest
import pandas as pd

# Wrong autoused fixture
@pytest.fixture(autouse=True)
def wrong_fixture():
    return [1,2,3,4,5]

# Test function
def test_type():
    assert type(wrong_fixture) == list

Opravený příklad fixture:

import pytest
import pandas as pd

# Wrong autoused fixture
@pytest.fixture
def correct_fixture():
    return [1,2,3,4,5]

# Test function
def test_type(correct_fixture):
    assert type(correct_fixture) == list
Úvod do testování v Pythonu

Příklad autouse: výstup

Výstup příkladu:

Výstup příkladu autouse

Úvod do testování v Pythonu

Shrnutí

  • Definice autouse: Volitelný booleovský argument dekorátoru fixture
  • Použití: @pytest.fixture(autouse=True)
  • Výhoda: Snižuje počet redundantních volání fixtures, čímž zjednodušuje kód
  • Vlastnost: autouse=True – funkce fixture se spustí bez ohledu na žádost
  • Kdy použít: Pokud je třeba aplikovat určitá příprava nebo úpravy prostředí
  • Příklady použití:
    • Načítání a příprava dat pro všechny testy
    • Konfigurace připojení a parametrů prostředí
    • Implementace monitoru, loggeru nebo profileru
Úvod do testování v Pythonu

Pojďme cvičit!

Úvod do testování v Pythonu

Preparing Video For Download...