ПочатиПочніть безкоштовно

Написання модульних тестів із pytest

У цій вправі ви потренуєтеся писати модульний тест для валідації конвеєра даних. Ви використаєте assert та інші інструменти, щоб побудувати тести й з'ясувати, чи працює конвеєр даних так, як має.

Функції extract() і transform() уже підготовлені для вас, а також доступний pandas, імпортований як pd. Ви тестуватимете функцію transform(), наведено нижче.

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

Ця вправа є частиною курсу

ETL та ELT у Python

Переглянути курс

Інструкції до вправи

  • Імпортуйте бібліотеку pytest.
  • Переконайтеся за допомогою assert, що значення в змінній clean_tax_data є екземпляром pd.DataFrame.
  • Перевірте, що кількість стовпців у датафреймі clean_tax_data більша, ніж кількість стовпців у датафреймі raw_tax_data.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

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)
Редагувати та запускати код