CommencerCommencez gratuitement

Écrire des tests unitaires avec pytest

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

Les fonctions extract() et transform() sont mises à 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

Cet exercice fait partie du cours

<cours>ETL et ELT en Python</cours>
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 du DataFrame clean_tax_data est supérieur à celui stocké dans le 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