Pisanie testów jednostkowych z pytest
W tym ćwiczeniu przećwiczysz pisanie testów jednostkowych do walidacji potoku danych. Użyjesz assert i innych narzędzi, aby zbudować testy i sprawdzić, czy potok danych działa poprawnie.
Funkcje extract() i transform() są już dostępne, podobnie jak biblioteka pandas zaimportowana jako pd. Będziesz testować funkcję transform(), która wygląda następująco.
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
To ćwiczenie jest częścią kursu
ETL i ELT w Pythonie
Instrukcje do ćwiczenia
- Zaimportuj bibliotekę
pytest. - Sprawdź za pomocą
assert, czy wartość przechowywana w zmiennejclean_tax_datajest instancjąpd.DataFrame. - Zweryfikuj, czy liczba kolumn w ramce danych
clean_tax_datajest większa niż liczba kolumn w ramce danychraw_tax_data.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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)