diff --git a/custom_components/irm_kmi/const.py b/custom_components/irm_kmi/const.py index 0ff7f76..4e0a427 100644 --- a/custom_components/irm_kmi/const.py +++ b/custom_components/irm_kmi/const.py @@ -143,7 +143,8 @@ MAP_WARNING_ID_TO_SLUG: Final = { 17: 'coldspell'} POLLEN_NAMES: Final = {'Alder', 'Ash', 'Birch', 'Grasses', 'Hazel', 'Mugwort', 'Oak'} -POLLEN_LEVEL_TO_COLOR = {'null': 'green', 'low': 'yellow', 'moderate': 'orange', 'high': 'red', 'very high': 'purple'} +POLLEN_LEVEL_TO_COLOR = {'null': 'green', 'low': 'yellow', 'moderate': 'orange', 'high': 'red', 'very high': 'purple', + 'active': 'active'} POLLEN_TO_ICON_MAP: Final = { 'alder': 'mdi:tree', 'ash': 'mdi:tree', 'birch': 'mdi:tree', 'grasses': 'mdi:grass', 'hazel': 'mdi:tree', diff --git a/custom_components/irm_kmi/pollen.py b/custom_components/irm_kmi/pollen.py index b402abe..2a461ca 100644 --- a/custom_components/irm_kmi/pollen.py +++ b/custom_components/irm_kmi/pollen.py @@ -58,8 +58,8 @@ class PollenParser: try: _LOGGER.debug(f"Full SVG: {self._xml}") root = ET.fromstring(self._xml) - except ET.ParseError: - _LOGGER.warning("Could not parse SVG pollen XML") + except ET.ParseError as e: + _LOGGER.warning(f"Could not parse SVG pollen XML: {e}") return pollen_data elements: List[ET.Element] = self._extract_elements(root) diff --git a/tests/fixtures/new_two_pollens.svg b/tests/fixtures/new_two_pollens.svg new file mode 100644 index 0000000..0860999 --- /dev/null +++ b/tests/fixtures/new_two_pollens.svg @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + Active pollen + + + + + + + + + + + + + + high + active + Grasses + Mugwort + + + + + \ No newline at end of file diff --git a/tests/test_pollen.py b/tests/test_pollen.py index f358cb3..19bd81c 100644 --- a/tests/test_pollen.py +++ b/tests/test_pollen.py @@ -15,9 +15,16 @@ def test_svg_pollen_parsing(): assert data == {'birch': 'none', 'oak': 'none', 'hazel': 'none', 'mugwort': 'none', 'alder': 'none', 'grasses': 'purple', 'ash': 'none'} +def test_svg_two_pollen_parsing(): + with open("tests/fixtures/new_two_pollens.svg", "r") as file: + svg_data = file.read() + data = PollenParser(svg_data).get_pollen_data() + assert data == {'birch': 'none', 'oak': 'none', 'hazel': 'none', 'mugwort': 'active', 'alder': 'none', + 'grasses': 'red', 'ash': 'none'} + def test_pollen_options(): - assert set(PollenParser.get_option_values()) == {'green', 'yellow', 'orange', 'red', 'purple', 'none'} + assert set(PollenParser.get_option_values()) == {'green', 'yellow', 'orange', 'red', 'purple', 'active', 'none'} def test_pollen_default_values():