From 0f80ff7285630c06b48db622c39eb2a640e82f91 Mon Sep 17 00:00:00 2001 From: Milan Rother Date: Thu, 5 Nov 2026 13:37:34 +0100 Subject: [PATCH 1/2] Add block icons --- src/pathsim_fmi/icons/CoSimulationFMU.svg | 1 + src/pathsim_fmi/icons/ModelExchangeFMU.svg | 1 + tests/test_icons.py | 29 ++++++++++++++++++++++ 3 files changed, 31 insertions(+) create mode 100644 src/pathsim_fmi/icons/CoSimulationFMU.svg create mode 100644 src/pathsim_fmi/icons/ModelExchangeFMU.svg create mode 100644 tests/test_icons.py diff --git a/src/pathsim_fmi/icons/CoSimulationFMU.svg b/src/pathsim_fmi/icons/CoSimulationFMU.svg new file mode 100644 index 0000000..4926e1c --- /dev/null +++ b/src/pathsim_fmi/icons/CoSimulationFMU.svg @@ -0,0 +1 @@ + diff --git a/src/pathsim_fmi/icons/ModelExchangeFMU.svg b/src/pathsim_fmi/icons/ModelExchangeFMU.svg new file mode 100644 index 0000000..8e35224 --- /dev/null +++ b/src/pathsim_fmi/icons/ModelExchangeFMU.svg @@ -0,0 +1 @@ + diff --git a/tests/test_icons.py b/tests/test_icons.py new file mode 100644 index 0000000..07b2238 --- /dev/null +++ b/tests/test_icons.py @@ -0,0 +1,29 @@ +import unittest +import xml.etree.ElementTree as ET + +from pathsim.blocks import Block + +import pathsim_fmi + + +class TestIcons(unittest.TestCase): + """Every block of the toolbox has an icon, read by Block.icon().""" + + def test_blocks_have_icons(self): + blocks = [ + obj for obj in vars(pathsim_fmi).values() + if isinstance(obj, type) and issubclass(obj, Block) + and obj.__module__.startswith("pathsim_fmi") + ] + self.assertGreater(len(blocks), 0) + + for cls in blocks: + with self.subTest(block=cls.__name__): + icon = cls.icon() + self.assertIsNotNone(icon) + root = ET.fromstring(icon) + self.assertEqual(root.get("viewBox"), "0 0 96 64") + + +if __name__ == "__main__": + unittest.main() From d556b9d00b2e671a0e6db88e9f914d2292cd19f0 Mon Sep 17 00:00:00 2001 From: Milan Rother Date: Thu, 5 Nov 2026 13:52:18 +0100 Subject: [PATCH 2/2] Format the icon test --- tests/test_icons.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/test_icons.py b/tests/test_icons.py index 07b2238..a624083 100644 --- a/tests/test_icons.py +++ b/tests/test_icons.py @@ -11,8 +11,10 @@ class TestIcons(unittest.TestCase): def test_blocks_have_icons(self): blocks = [ - obj for obj in vars(pathsim_fmi).values() - if isinstance(obj, type) and issubclass(obj, Block) + obj + for obj in vars(pathsim_fmi).values() + if isinstance(obj, type) + and issubclass(obj, Block) and obj.__module__.startswith("pathsim_fmi") ] self.assertGreater(len(blocks), 0)