Написання модульних тестів із 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. - Перевірте, що значення, збережене у змінній
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)