Beispiel #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
Beispiel #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
Beispiel #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
Beispiel #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
Beispiel #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
Beispiel #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
Beispiel #7
0
def test_default_output_type():
    dotter = Dotter()
    assert dotter.args == ['dot', '-O', '-Tpdf']
Beispiel #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']
Beispiel #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
Beispiel #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
Beispiel #11
0
def test_directed_graph():
    dotter = Dotter(directed=True)
    dotter.add_edge('a', 'b')
    expected = ['digraph', ' {', 'gb -> gc']
    assert expected == dotter.commands
Beispiel #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
Beispiel #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
Beispiel #14
0
def test_directed_graph():
    dotter = Dotter(directed=True)
    dotter.add_edge('a', 'b')
    expected = ['digraph', ' {', 'gb -> gc']
    assert expected == dotter.commands
Beispiel #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
Beispiel #16
0
def test_set_position_wrong_program():
    dotter = Dotter()
    dotter.add_node('a')
    with raises(Warning):
        dotter.set_position('a', 5, 4)
Beispiel #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
Beispiel #18
0
def test_addnode_label():
    dotter = Dotter()
    dotter.add_node('a', label='b')
    expected = ['digraph', ' {', 'gb', 'gb [label="b"]']
    assert expected == dotter.commands
Beispiel #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
Beispiel #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']
Beispiel #21
0
def test_addnode_label():
    dotter = Dotter()
    dotter.add_node('a', label='b')
    expected = ['digraph', ' {', 'gb', 'gb [label="b"]']
    assert expected == dotter.commands
Beispiel #22
0
def test_undirected_graph():
    dotter = Dotter(directed=False)
    dotter.add_edge('a', 'b')
    expected = ['graph', ' {', 'gb -- gc']
    assert expected == dotter.commands
Beispiel #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
Beispiel #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
Beispiel #25
0
def test_undirected_graph():
    dotter = Dotter(directed=False)
    dotter.add_edge('a', 'b')
    expected = ['graph', ' {', 'gb -- gc']
    assert expected == dotter.commands
Beispiel #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
Beispiel #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
Beispiel #28
0
def test_set_position_wrong_program():
    dotter = Dotter()
    dotter.add_node('a')
    with raises(Warning):
        dotter.set_position('a', 5, 4)
Beispiel #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
Beispiel #30
0
def test_output_to_file():
    dotter = Dotter(output_filename='test.pdf')
    expected = ['dot', '-o', 'test.pdf', '-Tpdf']
    assert dotter.args == expected
Beispiel #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