Kom igångKom igång gratis

Skriva enhetstester med pytest

I den här övningen övar du på att skriva ett enhetstest för att validera en datapipeline. Du använder assert och andra verktyg för att bygga testerna och avgöra om datapipelinen fungerar som den ska.

Funktionerna extract() och transform() har gjorts tillgängliga för dig, tillsammans med pandas, som har importerats som pd. Du kommer att testa funktionen transform(), som visas nedan.

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

Den här övningen är en del av kursen

ETL och ELT i Python

Visa kurs

Övningsinstruktioner

  • Importera biblioteket pytest.
  • Kontrollera med assert att värdet som lagras i variabeln clean_tax_data är en instans av pd.DataFrame.
  • Validera att antalet kolumner i DataFrame clean_tax_data är större än antalet kolumner i raw_tax_data.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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)
Redigera och kör kod