Aan de slagGa gratis aan de slag

Unittests schrijven met pytest

In deze oefening ga je een unittest schrijven om een datapijplijn te valideren. Je gebruikt assert en andere tools om de tests op te zetten en te bepalen of de datapijplijn doet wat hij moet doen.

De functies extract() en transform() zijn voor je beschikbaar gemaakt, net als pandas, dat is geïmporteerd als pd. Je gaat de functie transform() testen, die hieronder staat.

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

Deze oefening maakt deel uit van de cursus

ETL en ELT in Python

Cursus bekijken

Oefeninstructies

  • Importeer de pytest-bibliotheek.
  • Controleer met een assertie dat de waarde in de variabele clean_tax_data een instantie is van pd.DataFrame.
  • Valideer dat het aantal kolommen in de clean_tax_data-DataFrame groter is dan het aantal kolommen in de raw_tax_data-DataFrame.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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)
Code bewerken en uitvoeren