Skip to content

Commit 30524a5

Browse files
committed
- Updated excel decoder to only grab values instead of formulas
- Added test case for formula fields
1 parent 0a148a8 commit 30524a5

File tree

4 files changed

+29
-1
lines changed

4 files changed

+29
-1
lines changed

tdrs-backend/tdpservice/parsers/decoders.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ class XlsxDecoder(BaseDecoder):
143143

144144
def __init__(self, raw_file):
145145
super().__init__(raw_file)
146-
self.work_book = load_workbook(raw_file)
146+
self.work_book = load_workbook(raw_file, data_only=True)
147147

148148
def get_record_type(self, raw_data):
149149
"""Get the record type based on the raw data."""

tdrs-backend/tdpservice/parsers/test/conftest.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -817,3 +817,9 @@ def fra_ofa_test_xlsx(stt_user, stt):
817817
"""Fixture for FRA file with bad header data."""
818818
return util.create_test_datafile('fra_ofa_test.xlsx', stt_user, stt,
819819
DataFile.Section.FRA_WORK_OUTCOME_TANF_EXITERS)
820+
821+
@pytest.fixture
822+
def fra_formula_fields_test_xlsx(stt_user, stt):
823+
"""Fixture for FRA file with bad header data."""
824+
return util.create_test_datafile('fra_formula_fields.xlsx', stt_user, stt,
825+
DataFile.Section.FRA_WORK_OUTCOME_TANF_EXITERS)
Binary file not shown.

tdrs-backend/tdpservice/parsers/test/test_parse.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1916,3 +1916,25 @@ def test_parse_fra_ofa_test_cases(request, file, dfs):
19161916
assert dfs.total_number_of_records_in_file == 28
19171917
assert dfs.total_number_of_records_created == 10
19181918
assert dfs.get_status() == DataFileSummary.Status.PARTIALLY_ACCEPTED
1919+
1920+
@pytest.mark.django_db()
1921+
def test_parse_fra_formula_fields(fra_formula_fields_test_xlsx, dfs):
1922+
"""Test parsing a correct FRA file with formula fields."""
1923+
datafile = fra_formula_fields_test_xlsx
1924+
datafile.year = 2025
1925+
datafile.quarter = 'Q3'
1926+
1927+
dfs.datafile = datafile
1928+
dfs.save()
1929+
1930+
parser = ParserFactory.get_instance(datafile=datafile, dfs=dfs,
1931+
section=datafile.section,
1932+
program_type=datafile.prog_type)
1933+
parser.parse_and_validate()
1934+
1935+
errors = ParserError.objects.filter(file=datafile).order_by("id")
1936+
assert errors.count() == 0
1937+
assert TANF_Exiter1.objects.all().count() == 8
1938+
assert dfs.total_number_of_records_in_file == 8
1939+
assert dfs.total_number_of_records_created == 8
1940+
assert dfs.get_status() == DataFileSummary.Status.ACCEPTED

0 commit comments

Comments
 (0)