Menulis unit test dengan pytest
Dalam latihan ini, Anda akan berlatih menulis unit test untuk memvalidasi sebuah data pipeline. Anda akan menggunakan assert dan alat lainnya untuk membangun pengujian, serta menentukan apakah data pipeline bekerja sebagaimana mestinya.
Fungsi extract() dan transform() telah disediakan untuk Anda, bersama pandas yang sudah diimpor sebagai pd. Anda akan menguji fungsi transform() yang ditunjukkan di bawah ini.
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
Latihan ini adalah bagian dari kursus
ETL dan ELT di Python
Petunjuk latihan
- Impor pustaka
pytest. - Pastikan bahwa nilai yang disimpan dalam variabel
clean_tax_datamerupakan instance daripd.DataFrame. - Validasi bahwa jumlah kolom pada DataFrame
clean_tax_datalebih besar daripada jumlah kolom yang ada pada DataFrameraw_tax_data.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
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)