import pytest

from plesna.libs.string_tools import StringToolsError, extract_values_from_pattern


def test_extract_values_from_pattern():
    source = "id:truc-bidule-machin"
    pattern = "id:{champ1}-{champ2}-machin"

    assert extract_values_from_pattern(pattern, source) == {"champ1": "truc", "champ2": "bidule"}


def test_extract_values_from_pattern_no_match():
    source = "id:truc-bidule"
    pattern = "id:{champ1}-{champ2}-machin"

    with pytest.raises(StringToolsError):
        extract_values_from_pattern(pattern, source)