É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
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 dans le DataFrame
clean_tax_dataest supérieur au nombre de colonnes du 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)