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
Övningsinstruktioner
- Importera biblioteket
pytest. - Kontrollera med
assertatt värdet som lagras i variabelnclean_tax_dataär en instans avpd.DataFrame. - Validera att antalet kolumner i DataFrame
clean_tax_dataär större än antalet kolumner iraw_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)