From 591b161e44debe42576062860dec90f58427aba3 Mon Sep 17 00:00:00 2001 From: Jeongseop Lim Date: Mon, 20 May 2024 21:37:14 +0900 Subject: [PATCH 1/2] feat(node): add component for model c4 --- diagrams/c4/__init__.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/diagrams/c4/__init__.py b/diagrams/c4/__init__.py index 90ce7a92..f94bc589 100644 --- a/diagrams/c4/__init__.py +++ b/diagrams/c4/__init__.py @@ -57,6 +57,19 @@ def C4Node(name, technology="", description="", type="Container", **kwargs): return Node(**node_attributes) +def Component(name, technology="", description="", **kwargs): + container_attributes = { + "name": name, + "technology": technology, + "description": description, + "type": "Component", + "fillcolor": "lightskyblue", + "fontcolor": "black", + } + container_attributes.update(kwargs) + return C4Node(**container_attributes) + + def Container(name, technology="", description="", **kwargs): container_attributes = { "name": name, From 9f73c4e6a12566a1c0dcf6aa9655a6a71320dc72 Mon Sep 17 00:00:00 2001 From: Jeongseop Lim Date: Mon, 20 May 2024 21:41:38 +0900 Subject: [PATCH 2/2] test(node): Add test for component for c4 model --- tests/test_c4.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/test_c4.py b/tests/test_c4.py index 3877ec0f..c629977a 100644 --- a/tests/test_c4.py +++ b/tests/test_c4.py @@ -5,7 +5,7 @@ import unittest from diagrams import Diagram from diagrams import setcluster, setdiagram -from diagrams.c4 import Person, Container, Database, System, SystemBoundary, Relationship +from diagrams.c4 import Person, Container, Database, Component, System, SystemBoundary, Relationship class C4Test(unittest.TestCase): @@ -25,6 +25,7 @@ class C4Test(unittest.TestCase): person = Person("person", "A person.") container = Container("container", "Java application", "The application.") database = Database("database", "Oracle database", "Stores information.") + component = Component("component", "Sign In Controller", "A component.") def test_external_nodes(self): with Diagram(name=self.name, show=False):