File: test_parameters.py

package info (click to toggle)
python-graphviz 0.20.2-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,188 kB
  • sloc: python: 4,098; makefile: 13
file content (58 lines) | stat: -rw-r--r-- 1,776 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import pytest

import graphviz
from graphviz import parameters

VERIFY_FUNCS = [parameters.verify_engine,
                parameters.verify_format,
                parameters.verify_renderer,
                parameters.verify_formatter]


@pytest.mark.parametrize(
    'cls', [graphviz.Graph, graphviz.Digraph, graphviz.Source])
def test_parameters(cls, engine='patchwork', format='tiff',
                    renderer='map', formatter='core'):
    args = [''] if cls is graphviz.Source else []
    dot = cls(*args,
              engine=engine, format=format,
              renderer=renderer, formatter=formatter)

    assert isinstance(dot, cls)
    assert type(dot) is cls

    assert dot.engine == engine
    assert dot.format == format
    assert dot.renderer == renderer
    assert dot.formatter == formatter

    dot_copy = dot.copy()

    assert dot_copy is not dot
    assert isinstance(dot_copy, cls)
    assert type(dot_copy) is cls

    assert dot.engine == engine
    assert dot.format == format
    assert dot_copy.renderer == renderer
    assert dot_copy.formatter == formatter


@pytest.mark.parametrize(
    'verify_func', VERIFY_FUNCS)
def test_verify_parameter_raises_unknown(verify_func):
    with pytest.raises(ValueError, match=r'unknown .*\(must be .*one of'):
        verify_func('Brian!')


@pytest.mark.parametrize(
    'verify_func', VERIFY_FUNCS)
def test_verify_parameter_none_required_false_passes(verify_func):
    assert verify_func(None, required=False) is None


@pytest.mark.parametrize(
    'verify_func', VERIFY_FUNCS)
def test_verify_parameter_none_required_raises_missing(verify_func):
    with pytest.raises(ValueError, match=r'missing'):
        verify_func(None, required=True)