From a5469043a544a74a7f8d50f8a9399fe6b8eaef5a Mon Sep 17 00:00:00 2001 From: Your Name Date: Sat, 26 Sep 2026 22:25:46 +0800 Subject: [PATCH] fix(node): raise connection validation errors --- diagrams/__init__.py | 4 ++-- tests/test_diagram.py | 13 +++++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/diagrams/__init__.py b/diagrams/__init__.py index 1fa343b0..5d0a1168 100644 --- a/diagrams/__init__.py +++ b/diagrams/__init__.py @@ -490,9 +490,9 @@ class Node: :return: Connected node. """ if not isinstance(node, Node): - ValueError(f"{node} is not a valid Node") + raise ValueError(f"{node} is not a valid Node") if not isinstance(edge, Edge): - ValueError(f"{edge} is not a valid Edge") + raise ValueError(f"{edge} is not a valid Edge") # An edge must be added on the global diagrams, not a cluster. self._diagram.connect(self, node, edge) return node diff --git a/tests/test_diagram.py b/tests/test_diagram.py index 75fc02b8..a9436987 100644 --- a/tests/test_diagram.py +++ b/tests/test_diagram.py @@ -74,6 +74,19 @@ class DiagramTest(unittest.TestCase): with self.assertRaises(EnvironmentError): Node("node") + def test_connect_rejects_invalid_node(self): + with Diagram(filename=self.name, show=False): + node = Node("source") + with self.assertRaisesRegex(ValueError, "not a valid Node"): + node.connect("invalid", Edge()) + + def test_connect_rejects_invalid_edge(self): + with Diagram(filename=self.name, show=False): + source = Node("source") + target = Node("target") + with self.assertRaisesRegex(ValueError, "not a valid Edge"): + source.connect(target, "invalid") + def test_node_to_node(self): with Diagram(name=os.path.join(self.name, "node_to_node"), show=False): node1 = Node("node1")