Fixtures autouse

Introduction aux tests en Python

Alexander Levin

Data Scientist

Argument autouse

  • Argument booléen optionnel d'une fixture
  • Se passe au décorateur de fixture
  • Avec autouse=True, la fonction de fixture s'exécute même sans requête
  • Réduit les appels de fixtures redondants
Introduction aux tests en Python

Quand l'utiliser

Quand il faut appliquer des préparatifs ou des modifications d'environnement pour tous les tests.

Par exemple, pour garantir que tous les tests :

  • Ont les mêmes données
  • Ont les mêmes connexions (données, API, etc.)
  • Ont la même configuration d'environnement
  • Ont un suivi, une journalisation ou un profilage

Ces cas se règlent avec l'argument « autouse ».

Introduction aux tests en Python

Exemple d'autouse

Exemple de fixture « autouse » :

import pytest
import pandas as pd

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

# Fonction de test
def test_pd_options():
    assert pd.get_option('display.max_columns') == 5000
Introduction aux tests en Python

Exemple autouse incorrect

Exemple incorrect de fixture « autouse » :

import pytest
import pandas as pd

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

# Fonction de test
def test_type():
    assert type(wrong_fixture) == list

Exemple corrigé de fixture :

import pytest
import pandas as pd

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

# Fonction de test
def test_type(correct_fixture):
    assert type(correct_fixture) == list
Introduction aux tests en Python

Exemple autouse : sortie

Sortie de l'exemple :

sortie de l'exemple autouse

Introduction aux tests en Python

Résumé

  • Définition de autouse : argument booléen optionnel du décorateur de fixture
  • Utilisation : @pytest.fixture(autouse=True)
  • Avantage : réduit les appels de fixtures superflus, simplifie le code
  • Comportement : avec autouse=True, la fixture s'exécute même sans requête
  • Quand l'utiliser : lorsque des préparatifs ou modifications d'environnement s'imposent
  • Exemples d'usage :
    • Lecture et préparation des données pour tous les tests
    • Configuration des connexions et des paramètres d'environnement
    • Mise en place d'un suivi, d'une journalisation ou d'un profilage
Introduction aux tests en Python

Passons à la pratique !

Introduction aux tests en Python

Preparing Video For Download...