From d73845148210d0443e7bddf523e1db4cb07bdc95 Mon Sep 17 00:00:00 2001 From: Deepak Mallubhotla Date: Sun, 23 Feb 2025 02:01:27 -0600 Subject: [PATCH] test: change test snapshots to output dict instead of dataclass, better for non-brittleness to have canonical output forms for syrupy --- .../__snapshots__/test_read_bin_csv.ambr | 77 ++++++++++++++++--- tests/read_bin_csv/test_read_bin_csv.py | 11 ++- 2 files changed, 76 insertions(+), 12 deletions(-) diff --git a/tests/read_bin_csv/__snapshots__/test_read_bin_csv.ambr b/tests/read_bin_csv/__snapshots__/test_read_bin_csv.ambr index 5d28d60..7bf37c3 100644 --- a/tests/read_bin_csv/__snapshots__/test_read_bin_csv.ambr +++ b/tests/read_bin_csv/__snapshots__/test_read_bin_csv.ambr @@ -218,17 +218,72 @@ # --- # name: test_parse_headers list([ - ParsedBinHeader(original_field='APSD_V_dot1_mean', measurement_type='V', dot_name='dot1', summary_stat='mean'), - ParsedBinHeader(original_field='APSD_V_dot1_stdev', measurement_type='V', dot_name='dot1', summary_stat='stdev'), - ParsedBinHeader(original_field='APSD_V_dot2_mean', measurement_type='V', dot_name='dot2', summary_stat='mean'), - ParsedBinHeader(original_field='APSD_V_dot2_stdev', measurement_type='V', dot_name='dot2', summary_stat='stdev'), - ParsedBinHeader(original_field='APSD_V_line_mean', measurement_type='V', dot_name='line', 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'), - ParsedBinHeader(original_field='APSD_V_triangle1_stdev', measurement_type='V', dot_name='triangle1', summary_stat='stdev'), - ParsedBinHeader(original_field='APSD_V_triangle2_mean', measurement_type='V', dot_name='triangle2', summary_stat='mean'), - ParsedBinHeader(original_field='APSD_V_triangle2_stdev', measurement_type='V', dot_name='triangle2', summary_stat='stdev'), - ParsedBinHeader(original_field='APSD_V_uprise1_mean', measurement_type='V', dot_name='uprise1', summary_stat='mean'), + dict({ + 'dot_name': 'dot1', + 'measurement_type': 'V', + 'original_field': 'APSD_V_dot1_mean', + 'summary_stat': 'mean', + }), + dict({ + 'dot_name': 'dot1', + 'measurement_type': 'V', + 'original_field': 'APSD_V_dot1_stdev', + '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, ]) # --- diff --git a/tests/read_bin_csv/test_read_bin_csv.py b/tests/read_bin_csv/test_read_bin_csv.py index 8e71791..9175ad2 100644 --- a/tests/read_bin_csv/test_read_bin_csv.py +++ b/tests/read_bin_csv/test_read_bin_csv.py @@ -3,6 +3,7 @@ import kalpaa.read_bin_csv import pathlib import dataclasses import logging +import typing import numpy _logger = logging.getLogger(__name__) @@ -43,7 +44,15 @@ def test_parse_headers(snapshot): # force logger to be used for now _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