Aan de slagBegin gratis

Unittests schrijven met pytest

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

De functies extract() en transform() zijn voor je beschikbaar gemaakt, samen met 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

Bekijk cursus

Oefeninstructies

  • Importeer de pytest-bibliotheek.
  • Controleer met een assertie dat de waarde in de variabele clean_tax_data een instantie is van een 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.

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan 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