test: change test snapshots to output dict instead of dataclass, better for non-brittleness to have canonical output forms for syrupy

This commit is contained in:
Deepak Mallubhotla 2025-02-23 02:01:27 -06:00
parent 541a3af3cd
commit d738451482
Signed by: deepak
GPG Key ID: BEBAEBF28083E022
2 changed files with 76 additions and 12 deletions

View File

@ -218,17 +218,72 @@
# --- # ---
# name: test_parse_headers # name: test_parse_headers
list([ list([
ParsedBinHeader(original_field='APSD_V_dot1_mean', measurement_type='V', dot_name='dot1', summary_stat='mean'), dict({
ParsedBinHeader(original_field='APSD_V_dot1_stdev', measurement_type='V', dot_name='dot1', summary_stat='stdev'), 'dot_name': 'dot1',
ParsedBinHeader(original_field='APSD_V_dot2_mean', measurement_type='V', dot_name='dot2', summary_stat='mean'), 'measurement_type': 'V',
ParsedBinHeader(original_field='APSD_V_dot2_stdev', measurement_type='V', dot_name='dot2', summary_stat='stdev'), 'original_field': 'APSD_V_dot1_mean',
ParsedBinHeader(original_field='APSD_V_line_mean', measurement_type='V', dot_name='line', summary_stat='mean'), 'summary_stat': 'mean',
ParsedBinHeader(original_field='APSD_V_line_stdev', measurement_type='V', dot_name='line', summary_stat='stdev'), }),
ParsedBinHeader(original_field='APSD_V_triangle1_mean', measurement_type='V', dot_name='triangle1', summary_stat='mean'), dict({
ParsedBinHeader(original_field='APSD_V_triangle1_stdev', measurement_type='V', dot_name='triangle1', summary_stat='stdev'), 'dot_name': 'dot1',
ParsedBinHeader(original_field='APSD_V_triangle2_mean', measurement_type='V', dot_name='triangle2', summary_stat='mean'), 'measurement_type': 'V',
ParsedBinHeader(original_field='APSD_V_triangle2_stdev', measurement_type='V', dot_name='triangle2', summary_stat='stdev'), 'original_field': 'APSD_V_dot1_stdev',
ParsedBinHeader(original_field='APSD_V_uprise1_mean', measurement_type='V', dot_name='uprise1', summary_stat='mean'), 'summary_stat': 'stdev',
}),
dict({
'dot_name': 'dot2',
'measurement_type': 'V',
'original_field': 'APSD_V_dot2_mean',
'summary_stat': 'mean',
}),
dict({
'dot_name': 'dot2',
'measurement_type': 'V',
'original_field': 'APSD_V_dot2_stdev',
'summary_stat': 'stdev',
}),
dict({
'dot_name': 'line',
'measurement_type': 'V',
'original_field': 'APSD_V_line_mean',
'summary_stat': 'mean',
}),
dict({
'dot_name': 'line',
'measurement_type': 'V',
'original_field': 'APSD_V_line_stdev',
'summary_stat': 'stdev',
}),
dict({
'dot_name': 'triangle1',
'measurement_type': 'V',
'original_field': 'APSD_V_triangle1_mean',
'summary_stat': 'mean',
}),
dict({
'dot_name': 'triangle1',
'measurement_type': 'V',
'original_field': 'APSD_V_triangle1_stdev',
'summary_stat': 'stdev',
}),
dict({
'dot_name': 'triangle2',
'measurement_type': 'V',
'original_field': 'APSD_V_triangle2_mean',
'summary_stat': 'mean',
}),
dict({
'dot_name': 'triangle2',
'measurement_type': 'V',
'original_field': 'APSD_V_triangle2_stdev',
'summary_stat': 'stdev',
}),
dict({
'dot_name': 'uprise1',
'measurement_type': 'V',
'original_field': 'APSD_V_uprise1_mean',
'summary_stat': 'mean',
}),
None, None,
]) ])
# --- # ---

View File

@ -3,6 +3,7 @@ import kalpaa.read_bin_csv
import pathlib import pathlib
import dataclasses import dataclasses
import logging import logging
import typing
import numpy import numpy
_logger = logging.getLogger(__name__) _logger = logging.getLogger(__name__)
@ -43,7 +44,15 @@ def test_parse_headers(snapshot):
# force logger to be used for now # force logger to be used for now
_logger.debug("parsing headers for test") _logger.debug("parsing headers for test")
actual_parsed = [kalpaa.read_bin_csv._parse_bin_header(h) for h in example_headers]
def null_asdict(dataclz) -> typing.Optional[dict]:
if dataclz is None:
return None
return dataclasses.asdict(dataclz)
actual_parsed = [
null_asdict(kalpaa.read_bin_csv._parse_bin_header(h)) for h in example_headers
]
assert actual_parsed == snapshot assert actual_parsed == snapshot