valid_ugpio_driver() fix + tests

This commit is contained in:
Devaev Maxim 2020-09-09 07:13:34 +03:00
parent 3dfdab787a
commit de6a66e08e
2 changed files with 15 additions and 1 deletions

View File

@ -107,7 +107,7 @@ def valid_ugpio_driver(arg: Any, variants: Optional[Set[str]]=None) -> str:
name = "GPIO driver"
arg = check_len(check_re_match(arg, name, r"^[a-zA-Z_][a-zA-Z0-9_-]*$"), name, 255)
if variants is not None:
arg = check_string_in_list(arg, f"configured {name}", variants)
arg = check_string_in_list(arg, f"configured {name}", variants, False)
return arg

View File

@ -237,6 +237,20 @@ def test_fail__valid_ugpio_item(validator: Callable[[Any], str], arg: Any) -> No
print(validator(arg))
# =====
@pytest.mark.parametrize("arg", ["foo", " bar", " baz "])
def test_ok__valid_ugpio_driver_variants(arg: Any) -> None:
value = valid_ugpio_driver(arg, set(["foo", "bar", "baz"]))
assert type(value) == str # pylint: disable=unidiomatic-typecheck
assert value == str(arg).strip()
@pytest.mark.parametrize("arg", ["BAR", " ", "", None])
def test_fail__valid_ugpio_driver_variants(arg: Any) -> None:
with pytest.raises(ValidatorError):
print(valid_ugpio_driver(arg, set(["foo", "bar", "baz"])))
# =====
@pytest.mark.parametrize("arg", ["Input ", " OUTPUT "])
def test_ok__valid_ugpio_mode(arg: Any) -> None: