|
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- import os
- import random
- import string
- import unittest
-
- from diagrams import Diagram
- from diagrams import setcluster, setdiagram
- from diagrams.c4 import Person, Container, Database, System, SystemBoundary, Relationship
-
-
- class C4Test(unittest.TestCase):
- def setUp(self):
- self.name = "diagram-" + "".join([random.choice(string.hexdigits) for n in range(7)])
-
- def tearDown(self):
- setdiagram(None)
- setcluster(None)
- try:
- os.remove(self.name + ".png")
- except FileNotFoundError:
- pass
-
- def test_nodes(self):
- with Diagram(name=self.name, show=False):
- person = Person("person", "A person.")
- container = Container("container", "Java application", "The application.")
- database = Database("database", "Oracle database", "Stores information.")
-
- def test_external_nodes(self):
- with Diagram(name=self.name, show=False):
- external_person = Person("person", external=True)
- external_system = System("external", external=True)
-
- def test_systems(self):
- with Diagram(name=self.name, show=False):
- system = System("system", "The internal system.")
- system_without_description = System("unknown")
-
- def test_edges(self):
- with Diagram(name=self.name, show=False):
- c1 = Container("container1")
- c2 = Container("container2")
-
- c1 >> c2
-
- def test_edges_with_labels(self):
- with Diagram(name=self.name, show=False):
- c1 = Container("container1")
- c2 = Container("container2")
-
- c1 >> Relationship("depends on") >> c2
- c1 << Relationship("is depended on by") << c2
-
- def test_edge_without_constraint(self):
- with Diagram(name=self.name, show=False):
- s1 = System("system 1")
- s2 = System("system 2")
-
- s1 >> Relationship(constraint="False") >> s2
-
- def test_cluster(self):
- with Diagram(name=self.name, show=False):
- with SystemBoundary("System"):
- Container("container", "type", "description")
|