LoslegenKostenlos starten

Unit-Tests mit pytest schreiben

In dieser Übung schreibst du einen Unit-Test, um eine Datenpipeline zu validieren. Du verwendest assert und weitere Tools, um die Tests zu erstellen und festzustellen, ob die Datenpipeline wie vorgesehen funktioniert.

Die Funktionen extract() und transform() stehen dir zur Verfügung, ebenso pandas, das als pd importiert wurde. Du testest die Funktion transform(), die unten gezeigt ist.

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

Diese Übung ist Teil des Kurses

<Kurs>ETL und ELT in Python</Kurs>
Kurs ansehen

Übungsanweisungen

  • Importiere die Bibliothek pytest.
  • Stelle mit assert sicher, dass der in der Variablen clean_tax_data gespeicherte Wert eine Instanz von pd.DataFrame ist.
  • Validiere, dass die Anzahl der Spalten im DataFrame clean_tax_data größer ist als die Anzahl der Spalten im DataFrame raw_tax_data.

Interaktive praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

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 bearbeiten und ausführen