diff --git a/unittests/test_converters.py b/unittests/test_converters.py index 5a1c8b690690c5cce0373a5fa25d954fb89988f6..5942b1e124ebd1228a619ed7a1024738c70ee0aa 100644 --- a/unittests/test_converters.py +++ b/unittests/test_converters.py @@ -27,6 +27,7 @@ import json import yaml import importlib import os +from itertools import product import pytest import yaml @@ -500,11 +501,10 @@ end""") assert val["text"] == "\nbla\n" -def test_converter_value_match(converter_registry, capsys): +def test_converter_value_match(converter_registry): # test with defaults dc = FloatElementConverter( definition={ - "debug_match": True, "match_name": "(.*)", "match_value": "(.*)", }, @@ -513,14 +513,6 @@ def test_converter_value_match(converter_registry, capsys): ) m = dc.match(IntegerElement(name="a", value=4)) assert m is not None - # checking debug output - captured = capsys.readouterr() - # the name - assert "a" in captured.out - # the regexp - assert "(.*)" in captured.out - # the empty result set - assert "{}" in captured.out # overwrite default with no match for int dc = FloatElementConverter( @@ -546,3 +538,35 @@ def test_converter_value_match(converter_registry, capsys): ) m = dc.match(FloatElement(name="a", value=4.0)) assert m is not None + + +def test_match_debug(converter_registry, capsys): + for m, mn, mv in product([".*", None], [".*", None], [".*", None]): + defi = {"debug_match": True} + if m: + defi["match"] = m + if mn: + defi["match_name"] = mn + if mv: + defi["match_value"] = mv + dc = FloatElementConverter( + definition=defi, + name="Test", + converter_registry=converter_registry + ) + if m and mn: + with pytest.raises(RuntimeError) as err: + mtch = dc.match(IntegerElement(name="a", value=4)) + continue + else: + mtch = dc.match(IntegerElement(name="a", value=4)) + if not (m is None and mn is None and mv is None): + assert mtch is not None + # checking debug output + captured = capsys.readouterr() + # the name + assert "a" in captured.out + # the regexp + assert ".*" in captured.out + # the empty result set + assert "{}" in captured.out