示例#1
0
def test_output():
    dotter = Dotter(output_to_file=False, output_type='dot')
    for node in ['a', 'b', 'c', 'd']:
        dotter.add_node(node, label=node)
    output = dotter.commands
    expected = [x.replace('\t', '') for x in load_data('test_output.dot')]
    assert output == expected
示例#2
0
def test_nodes_attributes():
    dotter = Dotter()
    dotter.nodes_attributes(shape=Shape.Box)
    dotter.nodes_attributes(font='MyFont')
    expected = ['digraph', ' {', 'node [shape="box"]',
                'node [fontname="MyFont"]']
    assert dotter.commands == expected
示例#3
0
def test_output():
    dotter = Dotter(output_to_file=False, output_type='dot')
    for node in ['a', 'b', 'c', 'd']:
        dotter.add_node(node, label=node)
    output = dotter.close()
    output = output.splitlines()
    expected = load_data('test_output.dot')
    assert output == expected
示例#4
0
def test_output():
    dotter = Dotter(output_to_file=False, output_type='dot')
    for node in ['a', 'b', 'c', 'd']:
        dotter.add_node(node, label=node)
    output = dotter.close()
    output = output.splitlines()
    expected = load_data('test_output.dot')
    assert output == expected
示例#5
0
def test_addnode_styles():
    dotter = Dotter()
    dotter.add_node('a', styles=["diagonals", "filled", "bold"])
    expected = ['digraph',
                ' {',
                'gb',
                'gb [label="a"]',
                'gb [style="diagonals, filled, bold"]',
                ]
    assert expected == dotter.commands
示例#6
0
def test_addnode_styles():
    dotter = Dotter()
    dotter.add_node('a', styles=["diagonals", "filled", "bold"])
    expected = [
        'digraph',
        ' {',
        'gb',
        'gb [label="a"]',
        'gb [style="diagonals, filled, bold"]',
    ]
    assert expected == dotter.commands
示例#7
0
def test_default_output_type():
    dotter = Dotter()
    assert dotter.args == ['dot', '-O', '-Tpdf']
示例#8
0
def test_get_filetype_from_name():
    dotter = Dotter(output_filename='test.png')
    assert dotter.args == ['dot', '-o', 'test.png', '-Tpng']

    dotter = Dotter(output_filename='test.PNG')
    assert dotter.args == ['dot', '-o', 'test.PNG', '-Tpng']
示例#9
0
def test_dotter_str():
    dotter = Dotter(strict=True, output_to_file=False, output_type='svg')
    dotter.add_node('a')
    dotter.close()
    expected = ' strict \ndigraph\n {\ngb\ngb [label="a"]\n}'
    assert str(dotter) == expected
示例#10
0
def test_edge_label():
    dotter = Dotter(directed=False)
    dotter.add_edge('a', 'b', 'a to b')
    expected = ['graph', ' {', 'gb -- gc [label="a to b"]']
    assert dotter.commands == expected
示例#11
0
def test_directed_graph():
    dotter = Dotter(directed=True)
    dotter.add_edge('a', 'b')
    expected = ['digraph', ' {', 'gb -> gc']
    assert expected == dotter.commands
示例#12
0
def test_rank():
    dotter = Dotter()
    for node in ['a', 'b', 'c', 'd']:
        dotter.add_node(node, label=node)
    dotter.add_edge('a', 'b')
    dotter.add_edge('a', 'c')
    dotter.add_edge('a', 'd')

    dotter.rank(['a', 'b'], RankType.Min)
    dotter.rank(['c'], RankType.Same)
    dotter.rank(['d'], RankType.Max)

    expected = load_data('test_rank.dot')
    assert expected == dotter.commands
示例#13
0
def test_rank():
    dotter = Dotter()
    for node in ['a', 'b', 'c', 'd']:
        dotter.add_node(node, label=node)
    dotter.add_edge('a', 'b')
    dotter.add_edge('a', 'c')
    dotter.add_edge('a', 'd')

    dotter.rank(['a', 'b'], RankType.Min)
    dotter.rank(['c'], RankType.Same)
    dotter.rank(['d'], RankType.Max)

    expected = load_data('test_rank.dot')
    assert expected == dotter.commands
示例#14
0
def test_directed_graph():
    dotter = Dotter(directed=True)
    dotter.add_edge('a', 'b')
    expected = ['digraph', ' {', 'gb -> gc']
    assert expected == dotter.commands
示例#15
0
def test_set_position():
    dotter = Dotter(program=Program.Neato)
    dotter.add_node('a')
    dotter.set_position('a', 5, 4)
    expected = ['digraph', ' {', 'gb', 'gb [label="a"]', 'gb [pos="5,4!"]']
    assert expected == dotter.commands
示例#16
0
def test_set_position_wrong_program():
    dotter = Dotter()
    dotter.add_node('a')
    with raises(Warning):
        dotter.set_position('a', 5, 4)
示例#17
0
def test_edge_label():
    dotter = Dotter(directed=False)
    dotter.add_edge('a', 'b', 'a to b')
    expected = ['graph', ' {', 'gb -- gc [label="a to b"]']
    assert dotter.commands == expected
示例#18
0
def test_addnode_label():
    dotter = Dotter()
    dotter.add_node('a', label='b')
    expected = ['digraph', ' {', 'gb', 'gb [label="b"]']
    assert expected == dotter.commands
示例#19
0
def test_strict():
    dotter = Dotter(strict=False)
    dotter.add_edge('a', 'b')
    dotter.add_edge('a', 'b')
    expected = ['digraph', ' {', 'gb -> gc', 'gb -> gc']
    assert expected == dotter.commands
示例#20
0
def test_output_type_has_priority():
    dotter = Dotter(output_filename='test.png', output_type='pdf')
    assert dotter.args == ['dot', '-o', 'test.png', '-Tpdf']
示例#21
0
def test_addnode_label():
    dotter = Dotter()
    dotter.add_node('a', label='b')
    expected = ['digraph', ' {', 'gb', 'gb [label="b"]']
    assert expected == dotter.commands
示例#22
0
def test_undirected_graph():
    dotter = Dotter(directed=False)
    dotter.add_edge('a', 'b')
    expected = ['graph', ' {', 'gb -- gc']
    assert expected == dotter.commands
示例#23
0
def test_set_position():
    dotter = Dotter(program=Program.Neato)
    dotter.add_node('a')
    dotter.set_position('a', 5, 4)
    expected = ['digraph', ' {', 'gb', 'gb [label="a"]', 'gb [pos="5,4!"]']
    assert expected == dotter.commands
示例#24
0
def test_strict():
    dotter = Dotter(strict=False)
    dotter.add_edge('a', 'b')
    dotter.add_edge('a', 'b')
    expected = ['digraph', ' {', 'gb -> gc', 'gb -> gc']
    assert expected == dotter.commands
示例#25
0
def test_undirected_graph():
    dotter = Dotter(directed=False)
    dotter.add_edge('a', 'b')
    expected = ['graph', ' {', 'gb -- gc']
    assert expected == dotter.commands
示例#26
0
def test_edge_attributes():
    dotter = Dotter(directed=False)
    dotter.add_edge('a', 'b', label='a to b', direction=Directions.Both)
    expected = ['graph', ' {', 'gb -- gc [label="a to b", dir="both"]']
    assert dotter.commands == expected
示例#27
0
def test_strict_graph():
    dotter = Dotter(strict=True)
    dotter.add_node('a')
    expected = [' strict ', 'digraph', ' {', 'gb', 'gb [label="a"]']
    assert dotter.commands == expected
示例#28
0
def test_set_position_wrong_program():
    dotter = Dotter()
    dotter.add_node('a')
    with raises(Warning):
        dotter.set_position('a', 5, 4)
示例#29
0
def test_dotter_str():
    dotter = Dotter(strict=True, output_to_file=False, output_type='svg')
    dotter.add_node('a')
    dotter.close()
    expected = ' strict \ndigraph\n {\ngb\ngb [label="a"]\n}'
    assert str(dotter) == expected
示例#30
0
def test_output_to_file():
    dotter = Dotter(output_filename='test.pdf')
    expected = ['dot', '-o', 'test.pdf', '-Tpdf']
    assert dotter.args == expected
示例#31
0
def test_strict_graph():
    dotter = Dotter(strict=True)
    dotter.add_node('a')
    expected = [' strict ', 'digraph', ' {', 'gb', 'gb [label="a"]']
    assert dotter.commands == expected