Scrivere unit test con pytest
In questo esercizio praticherai la scrittura di un unit test per validare una data pipeline. Userai assert e altri strumenti per costruire i test e verificare se la pipeline si comporta come dovrebbe.
Le funzioni extract() e transform() sono già disponibili per te, insieme a pandas, importato come pd. Testerai la funzione transform(), mostrata qui sotto.
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
Questo esercizio fa parte del corso
ETL and ELT in Python
Istruzioni dell'esercizio
- Importa la libreria
pytest. - Verifica con un'asserzione che il valore memorizzato nella variabile
clean_tax_datasia un'istanza dipd.DataFrame. - Valida che il numero di colonne nel DataFrame
clean_tax_datasia maggiore del numero di colonne memorizzate nel DataFrameraw_tax_data.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
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)