CommencezCommencez gratuitement

Écrire des tests unitaires avec pytest

Dans cet exercice, vous allez vous exercer à écrire un test unitaire pour valider un pipeline de données. Vous utiliserez assert et d'autres outils pour construire les tests et déterminer si le pipeline se comporte comme prévu.

Les fonctions extract() et transform() sont déjà à votre disposition, ainsi que pandas, importé sous l'alias pd. Vous testerez la fonction transform(), présentée ci-dessous.

def transform(raw_data):
    raw_data["average_taxable_income"] = raw_data["total_taxable_income"] / raw_data["number_of_firms"]
    clean_data = raw_data.loc[raw_data["average_taxable_income"] > 100, :]
    clean_data.set_index("industry_name", inplace=True)
    return clean_data

Cette activité fait partie du cours

ETL et ELT en Python

Voir le cours

Instructions de l’exercice

  • Importez la bibliothèque pytest.
  • Vérifiez, avec une assertion, que la valeur stockée dans la variable clean_tax_data est une instance de pd.DataFrame.
  • Validez que le nombre de colonnes dans le DataFrame clean_tax_data est supérieur au nombre de colonnes du DataFrame raw_tax_data.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

import ____

def test_transformed_data():
    raw_tax_data = extract("raw_tax_data.csv")
    clean_tax_data = transform(raw_tax_data)
    
    # Assert that the transform function returns a pd.DataFrame
    assert ____(clean_tax_data, pd.DataFrame)
    
    # Assert that the clean_tax_data DataFrame has more columns than the raw_tax_data DataFrame
    ____ len(clean_tax_data.columns) ____ len(raw_tax_data.columns)
Modifier et exécuter le code