Zacznij terazZacznij za darmo

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

Zobacz kurs

Instrukcje do ćwiczenia

  • Zaimportuj bibliotekę pytest.
  • Sprawdź za pomocą assert, czy wartość przechowywana w zmiennej clean_tax_data jest instancją pd.DataFrame.
  • Zweryfikuj, czy liczba kolumn w ramce danych clean_tax_data jest większa niż liczba kolumn w ramce danych raw_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)
Edytuj i uruchom kod