НачатьНачать бесплатно

Написание модульных тестов с 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.
  • Убедитесь, что количество столбцов в DataFrame clean_tax_data больше количества столбцов в DataFrame 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)
Редактировать и запускать код