mirror of
https://github.com/mofeng-git/One-KVM.git
synced 2025-12-12 17:20:30 +08:00
some validation
This commit is contained in:
parent
a88ad42501
commit
e58ad66da9
@ -68,6 +68,8 @@ from ..validators.kvm import valid_stream_quality
|
||||
from ..validators.kvm import valid_stream_fps
|
||||
|
||||
from ..validators.hw import valid_gpio_pin_optional
|
||||
from ..validators.hw import valid_otg_gadget
|
||||
from ..validators.hw import valid_otg_id
|
||||
|
||||
|
||||
# =====
|
||||
@ -247,9 +249,9 @@ def _get_config_scheme() -> Dict:
|
||||
},
|
||||
|
||||
"otg": {
|
||||
"gadget": Option("kvmd"),
|
||||
"vendor_id": Option(0x1D6B, type=valid_number), # Linux Foundation
|
||||
"product_id": Option(0x0104, type=valid_number), # Multifunction Composite Gadget
|
||||
"gadget": Option("kvmd", type=valid_otg_gadget),
|
||||
"vendor_id": Option(0x1D6B, type=valid_otg_id), # Linux Foundation
|
||||
"product_id": Option(0x0104, type=valid_otg_id), # Multifunction Composite Gadget
|
||||
"manufacturer": Option("Pi-KVM"),
|
||||
"product": Option("Composite KVM Device"),
|
||||
"serial_number": Option("CAFEBABE"),
|
||||
|
||||
@ -23,6 +23,7 @@
|
||||
from typing import Any
|
||||
|
||||
from . import check_in_list
|
||||
from . import check_re_match
|
||||
|
||||
from .basic import valid_number
|
||||
|
||||
@ -40,3 +41,11 @@ def valid_gpio_pin(arg: Any) -> int:
|
||||
|
||||
def valid_gpio_pin_optional(arg: Any) -> int:
|
||||
return int(valid_number(arg, min=-1, name="optional GPIO pin"))
|
||||
|
||||
|
||||
def valid_otg_gadget(arg: Any) -> str:
|
||||
return check_re_match(arg, "OTG gadget name", r"^[a-z_][a-z0-9_-]*$")[:255]
|
||||
|
||||
|
||||
def valid_otg_id(arg: Any) -> int:
|
||||
return int(valid_number(arg, min=0, max=65535, name="OTG ID"))
|
||||
|
||||
@ -28,6 +28,8 @@ from kvmd.validators import ValidatorError
|
||||
from kvmd.validators.hw import valid_tty_speed
|
||||
from kvmd.validators.hw import valid_gpio_pin
|
||||
from kvmd.validators.hw import valid_gpio_pin_optional
|
||||
from kvmd.validators.hw import valid_otg_gadget
|
||||
from kvmd.validators.hw import valid_otg_id
|
||||
|
||||
|
||||
# =====
|
||||
@ -70,3 +72,45 @@ def test_ok__valid_gpio_pin_optional(arg: Any) -> None:
|
||||
def test_fail__valid_gpio_pin_optional(arg: Any) -> None:
|
||||
with pytest.raises(ValidatorError):
|
||||
print(valid_gpio_pin_optional(arg))
|
||||
|
||||
|
||||
# =====
|
||||
@pytest.mark.parametrize("arg", [
|
||||
"test-",
|
||||
"glados",
|
||||
"test",
|
||||
"_",
|
||||
"_foo_bar_",
|
||||
" aix",
|
||||
])
|
||||
def test_ok__valid_otg_gadget(arg: Any) -> None:
|
||||
assert valid_otg_gadget(arg) == arg.strip()
|
||||
|
||||
|
||||
@pytest.mark.parametrize("arg", [
|
||||
"тест",
|
||||
"-molestia",
|
||||
"te~st",
|
||||
"-",
|
||||
"-foo_bar",
|
||||
" ",
|
||||
"",
|
||||
None,
|
||||
])
|
||||
def test_fail__valid_otg_gadget(arg: Any) -> None:
|
||||
with pytest.raises(ValidatorError):
|
||||
print(valid_otg_gadget(arg))
|
||||
|
||||
|
||||
# =====
|
||||
@pytest.mark.parametrize("arg", ["0 ", 0, 1, 13, 65535])
|
||||
def test_ok__valid_otg_id(arg: Any) -> None:
|
||||
value = valid_otg_id(arg)
|
||||
assert type(value) == int # pylint: disable=unidiomatic-typecheck
|
||||
assert value == int(str(arg).strip())
|
||||
|
||||
|
||||
@pytest.mark.parametrize("arg", ["test", "", None, -1, -13, 1.1, 65534.5, 65536])
|
||||
def test_fail__valid_otg_id(arg: Any) -> None:
|
||||
with pytest.raises(ValidatorError):
|
||||
print(valid_otg_id(arg))
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user