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)
|