From 2e764765fb9819bb5b2683f0b15bd91812083396 Mon Sep 17 00:00:00 2001 From: Carey Metcalfe Date: Fri, 6 Oct 2017 10:04:24 -0400 Subject: [PATCH] Only accumulate non-null values Adds a test file with null 'compressed_speed_distance' fields (the 'distance' component of them accumulates). Fixes #38 --- fitparse/base.py | 2 +- tests/files/null_compressed_speed_dist.fit | Bin 0 -> 67518 bytes tests/test.py | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 tests/files/null_compressed_speed_dist.fit diff --git a/fitparse/base.py b/fitparse/base.py index f08eacb..4bcd494 100644 --- a/fitparse/base.py +++ b/fitparse/base.py @@ -334,7 +334,7 @@ def _parse_data_message(self, header): cmp_raw_value = component.render(raw_value) # Apply accumulated value - if component.accumulate: + if component.accumulate and cmp_raw_value is not None: accumulator = self._accumulators[def_mesg.mesg_num] cmp_raw_value = self._apply_compressed_accumulation( cmp_raw_value, accumulator[component.def_num], component.bits, diff --git a/tests/files/null_compressed_speed_dist.fit b/tests/files/null_compressed_speed_dist.fit new file mode 100644 index 0000000000000000000000000000000000000000..910f6d75de9fdcba18442736b28359eae3f46cac GIT binary patch literal 67518 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 rOcqlRN^kO;;qN!Y$2ZB>$CS&*%sp6W#H;c literal 0 HcmV?d00001 diff --git a/tests/test.py b/tests/test.py index 2b97af8..0149d25 100755 --- a/tests/test.py +++ b/tests/test.py @@ -376,7 +376,7 @@ def test_valid_files(self): 'antfs-dump.63.fit', 'sample-activity-indoor-trainer.fit', 'sample-activity.fit', 'garmin-fenix-5-bike.fit', 'garmin-fenix-5-run.fit', 'garmin-fenix-5-walk.fit', - 'garmin-edge-820-bike.fit'): + 'garmin-edge-820-bike.fit', 'null_compressed_speed_dist.fit'): FitFile(testfile(x)).parse() def test_units_processor(self):