IniziaInizia gratis

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

Visualizza il corso

Istruzioni dell'esercizio

  • Importa la libreria pytest.
  • Verifica con un'asserzione che il valore memorizzato nella variabile clean_tax_data sia un'istanza di pd.DataFrame.
  • Valida che il numero di colonne nel DataFrame clean_tax_data sia maggiore del numero di colonne memorizzate nel DataFrame raw_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)
Modifica ed esegui il codice