from io import BytesIO import openpyxl def test_tipi_parser_requires_official_columns_and_reads_ncm_rows(): from central.app.datasets.tipi import parse_tipi_xlsx workbook = openpyxl.Workbook() sheet = workbook.active sheet.append(["NCM", "EX", "DESCRIÇÃO", "ALÍQUOTA (%)"]) sheet.append(["0101.21.00", None, "Reprodutores", "0"]) raw = BytesIO(); workbook.save(raw) payload = parse_tipi_xlsx(raw.getvalue()) assert payload.entries[0].ncm == "01012100" assert payload.entries[0].rate == "0" def test_tipi_parser_preserves_ex_in_the_ncm_key(): from central.app.datasets.tipi import parse_tipi_xlsx workbook = openpyxl.Workbook(); sheet = workbook.active sheet.append(["NCM", "EX", "DESCRIÇÃO", "ALÍQUOTA (%)"]) sheet.append(["0101.21.00", "01", "Com EX", "NT"]) raw = BytesIO(); workbook.save(raw) entry = parse_tipi_xlsx(raw.getvalue()).entries[0] assert entry.ex == "01" assert entry.rate == "NT"