Написання модульних тестів із 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)