mirror of
https://github.com/beetbox/beets.git
synced 2026-07-22 00:57:10 -04:00
43 lines
1.2 KiB
Python
43 lines
1.2 KiB
Python
import pytest
|
|
|
|
from beets.util.config import UnknownPairError, sanitize_choices, sanitize_pairs
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
"input_choices, valid_choices, expected",
|
|
[
|
|
(["A", "Z"], ("A", "B"), ["A"]),
|
|
(["A", "A"], ("A"), ["A"]),
|
|
(["D", "*", "A"], ("A", "B", "C", "D"), ["D", "B", "C", "A"]),
|
|
],
|
|
)
|
|
def test_sanitize_choices(input_choices, valid_choices, expected):
|
|
assert sanitize_choices(input_choices, valid_choices) == expected
|
|
|
|
|
|
def test_sanitize_pairs():
|
|
assert sanitize_pairs(
|
|
[
|
|
("foo", "baz bar"),
|
|
("foo", "baz bar"),
|
|
("key", "*"),
|
|
("*", "*"),
|
|
("discard", "bye"),
|
|
],
|
|
[("foo", "bar"), ("foo", "baz"), ("foo", "foobar"), ("key", "value")],
|
|
) == [("foo", "baz"), ("foo", "bar"), ("key", "value"), ("foo", "foobar")]
|
|
|
|
|
|
def test_sanitize_pairs_unknown_key():
|
|
with pytest.raises(UnknownPairError):
|
|
sanitize_pairs(
|
|
[("bar", "foo")], [("key", "value")], raise_on_unknown=True
|
|
)
|
|
|
|
|
|
def test_sanitize_pairs_unknown_key_wildcard_value():
|
|
with pytest.raises(UnknownPairError):
|
|
sanitize_pairs(
|
|
[("foo", "*")], [("key", "value")], raise_on_unknown=True
|
|
)
|