Skip to content

Commit 79fb880

Browse files
author
Christian Adell
authored
Merge pull request #88 from networktocode/release-v2.0.2
Release v2.0.2
2 parents 8784032 + d8f9ac8 commit 79fb880

File tree

4 files changed

+28
-1
lines changed

4 files changed

+28
-1
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# Changelog
22

3+
## v2.0.2 - 2021-09-28
4+
5+
### Fixed
6+
7+
- #86 - Fix `CombinedProcessor` carries over data from previous parsing
8+
39
## v2.0.1 - 2021-09-16
410

511
### Fixed

circuit_maintenance_parser/processor.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,11 @@ class CombinedProcessor(GenericProcessor):
115115
# The CombinedProcessor will consolidate all the parsed data into this variable
116116
combined_maintenance_data: Dict = {}
117117

118+
def process(self, data: NotificationData, extended_data: Dict) -> Iterable[Maintenance]:
119+
"""Extend base class process method to ensure that self.combined_maintenance_data is initialized correctly."""
120+
self.combined_maintenance_data = {}
121+
return super().process(data, extended_data)
122+
118123
def process_hook(self, maintenances_extracted_data, maintenances_data):
119124
"""All the parsers contribute with a subset of data that is extended.
120125

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "circuit-maintenance-parser"
3-
version = "2.0.1"
3+
version = "2.0.2"
44
description = "Python library to parse Circuit Maintenance notifications and return a structured data back"
55
authors = ["Network to Code <[email protected]>"]
66
license = "Apache-2.0"

tests/unit/test_processors.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ class FakeParser1(FakeParser):
4949
# Fake data used for SimpleProcessor
5050
fake_data = NotificationData.init_from_raw("fake_type", b"fake data")
5151
# Fake data used for CombinedProcessor
52+
fake_data_type_0 = NotificationData.init_from_raw("fake_type_0", b"fake data")
5253
fake_data_for_combined = NotificationData.init_from_raw("fake_type_0", b"fake data")
5354
if fake_data_for_combined:
5455
fake_data_for_combined.data_parts.append(DataPart("fake_type_1", b"fake data"))
@@ -107,3 +108,18 @@ def test_combinedprocessor_missing_data():
107108
processor.process(fake_data_for_combined, EXTENDED_DATA)
108109

109110
assert "Not enough information available to create a Maintenance notification" in str(e_info)
111+
112+
113+
def test_combinedprocessor_bleed():
114+
"""Test CombinedProcessor to make sure that information from one processing doesn't bleed over to another."""
115+
processor = CombinedProcessor(data_parsers=[FakeParser0, FakeParser1])
116+
117+
with patch("circuit_maintenance_parser.processor.Maintenance") as mock_maintenance:
118+
processor.process(fake_data_for_combined, EXTENDED_DATA)
119+
assert mock_maintenance.call_count == 1
120+
mock_maintenance.assert_called_with(**{**PARSED_DATA[0], **PARSED_DATA[1], **EXTENDED_DATA})
121+
122+
with patch("circuit_maintenance_parser.processor.Maintenance") as mock_maintenance:
123+
processor.process(fake_data_type_0, EXTENDED_DATA)
124+
assert mock_maintenance.call_count == 1
125+
mock_maintenance.assert_called_with(**{**PARSED_DATA[0], **EXTENDED_DATA})

0 commit comments

Comments
 (0)