示例#1
0
 def test_node_to_node(self):
     with Diagram(name=os.path.join(self.name, "node_to_node"), show=False):
         node1 = Node("node1")
         node2 = Node("node2")
         self.assertEqual(node1 - node2, node2)
         self.assertEqual(node1 >> node2, node2)
         self.assertEqual(node1 << node2, node2)
示例#2
0
 def test_node_as_cluster(self):
     with Diagram(name=os.path.join(self.name, "test_node_as_cluster"),
                  show=False) as d1:
         node1 = Node("node1")
         with EC2("node-as-cluster") as c1:
             node2 = Node("node2")
             self.assertEqual(c1, getcluster())
示例#3
0
 def test_nodes_to_node(self):
     with Diagram(name=self.name, show=False):
         node1 = Node("node1")
         nodes = [Node("node2"), Node("node3")]
         self.assertEqual(nodes - node1, node1)
         self.assertEqual(nodes >> node1, node1)
         self.assertEqual(nodes << node1, node1)
示例#4
0
 def test_node_to_nodes(self):
     with Diagram(name=os.path.join(self.name, 'node_to_nodes'),
                  show=False):
         with Cluster():
             node1 = Node("node1")
             nodes = [Node("node2"), Node("node3")]
             self.assertEqual(node1 - Edge(color='red') - nodes, nodes)
示例#5
0
 def test_node_to_nodes(self):
     with Diagram(name=self.name, show=False):
         node1 = Node("node1")
         nodes = [Node("node2"), Node("node3")]
         self.assertEqual(node1 - nodes, nodes)
         self.assertEqual(node1 >> nodes, nodes)
         self.assertEqual(node1 << nodes, nodes)
示例#6
0
 def test_nodes_to_node(self):
     with Diagram(name=os.path.join(self.name, "nodes_to_node"),
                  show=False):
         with Cluster():
             node1 = Node("node1")
             nodes = [Node("node2"), Node("node3")]
             self.assertEqual(nodes - Edge(color="red") - node1, node1)
示例#7
0
 def test_node_to_node(self):
     with Diagram(name=self.name, show=False):
         with Cluster():
             node1 = Node("node1")
             node2 = Node("node2")
             self.assertEqual(node1 - node2, node2)
             self.assertEqual(node1 >> node2, node2)
             self.assertEqual(node1 << node2, node2)
示例#8
0
 def test_node_to_nodes(self):
     with Diagram(name=os.path.join(self.name, "node_to_nodes"),
                  show=False):
         with Cluster():
             node1 = Node("node1")
             nodes = [Node("node2"), Node("node3")]
             self.assertEqual(node1 - nodes, nodes)
             self.assertEqual(node1 >> nodes, nodes)
             self.assertEqual(node1 << nodes, nodes)
示例#9
0
 def test_nodes_to_node(self):
     with Diagram(name=os.path.join(self.name, 'nodes_to_node'),
                  show=False):
         with Cluster():
             node1 = Node("node1")
             nodes = [Node("node2"), Node("node3")]
             self.assertEqual(nodes - node1, node1)
             self.assertEqual(nodes >> node1, node1)
             self.assertEqual(nodes << node1, node1)
示例#10
0
 def test_nodes_to_node_with_attributes_bothdirectional(self):
     with Diagram(name=os.path.join(
             self.name, 'nodes_to_node_with_attributes_bothdirectional'),
                  show=False) as diagram:
         with Cluster():
             node1 = Node("node1")
             nodes = [Node("node2"), Node("node3")]
             self.assertEqual(
                 nodes << Edge(color='green', label='4') >> node1, node1)
示例#11
0
 def test_nodes_to_node_with_attributes_bidirectional(self):
     with Diagram(name=os.path.join(
             self.name, "nodes_to_node_with_attributes_bidirectional"),
                  show=False):
         with Cluster():
             node1 = Node("node1")
             nodes = [Node("node2"), Node("node3")]
             self.assertEqual(
                 nodes << Edge(color="blue", label="5") >> node1, node1)
示例#12
0
 def test_nodes_to_node_with_additional_attributes(self):
     with Diagram(name=os.path.join(
             self.name, "nodes_to_node_with_additional_attributes"),
                  show=False):
         with Cluster():
             node1 = Node("node1")
             nodes = [Node("node2"), Node("node3")]
             self.assertEqual(
                 nodes - Edge(color="red") - Edge(color="green") - node1,
                 node1)
示例#13
0
 def test_nodes_to_node_with_attributes_onedirectional(self):
     with Diagram(name=os.path.join(
             self.name, "nodes_to_node_with_attributes_onedirectional"),
                  show=False):
         with Cluster():
             node1 = Node("node1")
             nodes = [Node("node2"), Node("node3")]
             self.assertEqual(
                 nodes >> Edge(color="red", label="6.1") >> node1, node1)
             self.assertEqual(
                 nodes << Edge(color="green", label="6.2") << node1, node1)
示例#14
0
 def test_node_to_node_with_attributes(self):
     with Diagram(name=os.path.join(self.name,
                                    "node_to_node_with_attributes"),
                  show=False):
         with Cluster():
             node1 = Node("node1")
             node2 = Node("node2")
             self.assertEqual(
                 node1 << Edge(color="red", label="1.1") << node2, node2)
             self.assertEqual(
                 node1 >> Edge(color="green", label="1.2") >> node2, node2)
             self.assertEqual(
                 node1 << Edge(color="blue", label="1.3") >> node2, node2)
示例#15
0
 def test_node_to_node_with_attributes(self):
     with Diagram(name=os.path.join(self.name,
                                    'node_to_node_with_attributes'),
                  show=False):
         with Cluster():
             node1 = Node("node1")
             node2 = Node("node2")
             self.assertEqual(
                 node1 << Edge(color='red', label='1.1') << node2, node2)
             self.assertEqual(
                 node1 >> Edge(color='green', label='1.2') >> node2, node2)
             self.assertEqual(
                 node1 << Edge(color='blue', label='1.3') >> node2, node2)
示例#16
0
 def test_nodes_to_node_with_additional_attributes_directional(self):
     with Diagram(name=os.path.join(
             self.name,
             'nodes_to_node_with_additional_attributes_directional'),
                  show=False):
         with Cluster():
             node1 = Node("node1")
             nodes = [Node("node2"), Node("node3")]
             self.assertEqual(
                 nodes >> Edge(color='red', label='6.1') >> Edge(
                     color='blue', label='6.2') >> node1, node1)
             self.assertEqual(
                 nodes << Edge(color='green', label='6.3') << Edge(
                     color='pink', label='6.4') << node1, node1)
示例#17
0
    def test_outformat_list(self):
        """Check that outformat render all the files from the list."""
        self.name = 'diagrams_image'
        with Diagram(show=False, outformat=["dot", "png"]):
            Node("node1")
        # both files must exist
        self.assertTrue(os.path.exists(f"{self.name}.png"))
        self.assertTrue(os.path.exists(f"{self.name}.dot"))

        # clean the dot file as it only generated here
        os.remove(self.name + ".dot")
示例#18
0
 def test_nodes_to_node_with_attributes_loop(self):
     with Diagram(name=os.path.join(self.name,
                                    'nodes_to_node_with_attributes_loop'),
                  show=False):
         with Cluster():
             node = Node("node")
             self.assertEqual(
                 node >> Edge(color='red', label='3.1') >> node, node)
             self.assertEqual(
                 node << Edge(color='green', label='3.2') << node, node)
             self.assertEqual(
                 node >> Edge(color='blue', label='3.3') << node, node)
             self.assertEqual(
                 node << Edge(color='pink', label='3.4') >> node, node)
示例#19
0
 def test_nodes_to_node_with_attributes_loop(self):
     with Diagram(name=os.path.join(self.name,
                                    "nodes_to_node_with_attributes_loop"),
                  show=False):
         with Cluster():
             node = Node("node")
             self.assertEqual(
                 node >> Edge(color="red", label="3.1") >> node, node)
             self.assertEqual(
                 node << Edge(color="green", label="3.2") << node, node)
             self.assertEqual(
                 node >> Edge(color="blue", label="3.3") << node, node)
             self.assertEqual(
                 node << Edge(color="pink", label="3.4") >> node, node)
示例#20
0
from diagrams.saas.cdn import Cloudflare
from diagrams.generic.compute import Rack
from diagrams.onprem.certificates import LetsEncrypt

# https://github.com/mingrammer/diagrams/issues/447#issuecomment-770430158
# https://graphviz.gitlab.io/doc/info/shapes.html#html
legend_text = """<
    <U>Legend</U> <BR ALIGN="LEFT" /><BR/>
    <FONT color="gray">●</FONT> automated <BR ALIGN="LEFT" />
    <FONT color="green">●</FONT> proxy <BR ALIGN="LEFT" />
    >"""

with Diagram("Homelab", show=False, outformat="png"):
    Node(
        label=legend_text,
        width="4",
        shape="plaintext",
    )

    workstation = Ansible("homelab.git")

    with Cluster("Service Node"):
        ingress = Traefik("ingress")
        middleware = [Firewall("OAuth middlware")]
        ingress >> Edge(style="dashed") >> middleware

        (
            ingress
            >> Edge(color="green")
            >> [
                Server("adguard"),
示例#21
0
 def test_node_to_node(self):
     with Diagram(name=os.path.join(self.name, "node_to_node"), show=False):
         node1 = Node("node1")
         node2 = Node("node2")
         self.assertEqual(node1 - Edge(color="red") - node2, node2)
示例#22
0
 def test_node_not_in_diagram(self):
     # Node must be belong to a diagrams.
     with self.assertRaises(EnvironmentError):
         Node("node")
示例#23
0
 def test_custom_filename(self):
     self.name = "my_custom_name"
     with Diagram(name="Example 1", filename=self.name, show=False):
         Node("node1")
     self.assertTrue(os.path.exists(f"{self.name}.png"))
示例#24
0
 def test_default_filename(self):
     self.name = "example_1"
     with Diagram(name="Example 1", show=False):
         Node("node1")
     self.assertTrue(os.path.exists(f"{self.name}.png"))
示例#25
0
 def test_empty_name(self):
     """Check that providing an empty name don't crash, but save in a diagrams_image.xxx file."""
     self.name = 'diagrams_image'
     with Diagram(show=False):
         Node("node1")
     self.assertTrue(os.path.exists(f"{self.name}.png"))