É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>Instructions de l’exercice
- Importez la bibliothèque
pytest. - Vérifiez avec une assertion que la valeur stockée dans la variable
clean_tax_dataest une instance depd.DataFrame. - Validez que le nombre de colonnes du DataFrame
clean_tax_dataest supérieur à celui stocké dans le DataFrameraw_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)