Написание модульных тестов с 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больше количества столбцов в DataFrameraw_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)