Escrevendo testes de unidade com o pytest
Neste exercício, você praticará a criação de um teste de unidade para validar um pipeline de dados. Você usará o site assert
e outras ferramentas para criar os testes e determinar se o pipeline de dados funciona como deveria.
As funções extract()
e transform()
foram disponibilizadas para você, juntamente com pandas
, que foi importada como pd
. Você testará a função transform()
, que é mostrada abaixo.
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
Este exercício faz parte do curso
ETL e ELT em Python
Instruções de exercício
- Importe a biblioteca
pytest
. - Afirme que o valor armazenado nas variáveis
clean_tax_data
é uma instância de umpd.DataFrame
. - Valide se o número de colunas no
clean_tax_data
DataFrame é maior do que as colunas armazenadas noraw_tax_data
DataFrame.
Exercício interativo prático
Experimente este exercício preenchendo este código de exemplo.
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)