Écrire des tests unitaires avec pytest
Dans cet exercice, vous vous entraînerez à écrire un test unitaire pour valider un pipeline de données. Vous utiliserez assert
et d'autres outils pour élaborer les tests et déterminer si le pipeline de données fonctionne comme il se doit.
Les fonctions extract()
et transform()
ont été mises à votre disposition, ainsi que pandas
, qui a été importé en tant que pd
. Vous allez tester la fonction transform()
, qui est illustré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
ETL et ELT en Python
Instructions
- Importez la bibliothèque
pytest
. - Affirmez que la valeur stockée dans les variables
clean_tax_data
est une instance depd.DataFrame
. - Validez que le nombre de colonnes dans le DataFrame
clean_tax_data
est supérieur aux colonnes stockées dans le DataFrameraw_tax_data
.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
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)