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.kvm import valid_stream_fps
|
||||||
|
|
||||||
from ..validators.hw import valid_gpio_pin_optional
|
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": {
|
"otg": {
|
||||||
"gadget": Option("kvmd"),
|
"gadget": Option("kvmd", type=valid_otg_gadget),
|
||||||
"vendor_id": Option(0x1D6B, type=valid_number), # Linux Foundation
|
"vendor_id": Option(0x1D6B, type=valid_otg_id), # Linux Foundation
|
||||||
"product_id": Option(0x0104, type=valid_number), # Multifunction Composite Gadget
|
"product_id": Option(0x0104, type=valid_otg_id), # Multifunction Composite Gadget
|
||||||
"manufacturer": Option("Pi-KVM"),
|
"manufacturer": Option("Pi-KVM"),
|
||||||
"product": Option("Composite KVM Device"),
|
"product": Option("Composite KVM Device"),
|
||||||
"serial_number": Option("CAFEBABE"),
|
"serial_number": Option("CAFEBABE"),
|
||||||
|
|||||||
@ -23,6 +23,7 @@
|
|||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
from . import check_in_list
|
from . import check_in_list
|
||||||
|
from . import check_re_match
|
||||||
|
|
||||||
from .basic import valid_number
|
from .basic import valid_number
|
||||||
|
|
||||||
@ -40,3 +41,11 @@ def valid_gpio_pin(arg: Any) -> int:
|
|||||||
|
|
||||||
def valid_gpio_pin_optional(arg: Any) -> int:
|
def valid_gpio_pin_optional(arg: Any) -> int:
|
||||||
return int(valid_number(arg, min=-1, name="optional GPIO pin"))
|
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_tty_speed
|
||||||
from kvmd.validators.hw import valid_gpio_pin
|
from kvmd.validators.hw import valid_gpio_pin
|
||||||
from kvmd.validators.hw import valid_gpio_pin_optional
|
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:
|
def test_fail__valid_gpio_pin_optional(arg: Any) -> None:
|
||||||
with pytest.raises(ValidatorError):
|
with pytest.raises(ValidatorError):
|
||||||
print(valid_gpio_pin_optional(arg))
|
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