00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034 import unittest
00035 from qt_dotgraph.pydotfactory import PydotFactory
00036
00037 class PyDotFactoryTest(unittest.TestCase):
00038
00039 def test_get_graph(self):
00040 fac = PydotFactory()
00041 g = fac.get_graph()
00042 self.assertEquals('same', g.get_rank())
00043 self.assertEquals('digraph', g.get_graph_type())
00044
00045 def test_add_node(self):
00046 fac = PydotFactory()
00047 g = fac.get_graph()
00048 fac.add_node_to_graph(g, 'foo')
00049 self.assertEqual(1, len(g.get_nodes()))
00050 self.assertEqual('foo', g.get_nodes()[0].get_name())
00051 self.assertEqual('foo', g.get_nodes()[0].get_label())
00052
00053 def test_add_node_escape_name(self):
00054 fac = PydotFactory()
00055 g = fac.get_graph()
00056 fac.add_node_to_graph(g, 'graph')
00057 self.assertEqual(1, len(g.get_nodes()))
00058 self.assertEqual('graph_', g.get_nodes()[0].get_name())
00059 self.assertEqual('graph_', g.get_nodes()[0].get_label())
00060
00061 def test_add_edge(self):
00062 fac = PydotFactory()
00063 g = fac.get_graph()
00064 fac.add_node_to_graph(g, 'foo')
00065 fac.add_node_to_graph(g, 'bar')
00066 fac.add_edge_to_graph(g, 'foo', 'bar')
00067 self.assertEqual(2, len(g.get_nodes()))
00068 self.assertEqual(1, len(g.get_edges()))
00069 self.assertEqual('foo', g.get_edges()[0].get_source())
00070 self.assertEqual('bar', g.get_edges()[0].get_destination())
00071
00072 def test_add_subgraph(self):
00073 fac = PydotFactory()
00074 g = fac.get_graph()
00075 fac.add_subgraph_to_graph(g, 'foo')
00076 self.assertEqual(1, len(g.get_subgraph_list()))
00077 self.assertEqual('cluster_foo', g.get_subgraph_list()[0].get_name())
00078 self.assertEqual('foo', g.get_subgraph_list()[0].get_label())
00079
00080 def test_add_subgraph_escape_name(self):
00081 fac = PydotFactory()
00082 g = fac.get_graph()
00083 fac.add_subgraph_to_graph(g, 'graph')
00084 self.assertEqual(1, len(g.get_subgraph_list()))
00085 self.assertEqual('cluster_graph_', g.get_subgraph_list()[0].get_name())
00086 self.assertEqual('graph', g.get_subgraph_list()[0].get_label())
00087
00088 def test_create_dot(self):
00089 fac = PydotFactory()
00090 g = fac.get_graph()
00091 fac.add_node_to_graph(g, 'foo')
00092 fac.add_node_to_graph(g, 'edge')
00093 fac.add_edge_to_graph(g, 'foo', 'edge')
00094 fac.add_subgraph_to_graph(g, 'foo')
00095 snippets = ['digraph graphname {\n\tgraph [rankdir=TB, ranksep="0.2", rank=same, compound=True];\n\tnode [label="\\N"];\n\tgraph [bb="', '"];\n\tsubgraph cluster_foo {\n\t\tgraph [',
00096 '];\n\t}\n\tfoo [label=foo, shape=box, pos="',
00097 'edge_ [label=edge_, shape=box, pos="',
00098 'foo -> edge_',
00099 '"];\n}\n']
00100 result = fac.create_dot(g)
00101 for sn in snippets:
00102 self.assertTrue(sn in result, '%s \nmissing in\n %s' % (sn, result))