diff options
author | Devaev Maxim <[email protected]> | 2020-11-22 04:54:03 +0300 |
---|---|---|
committer | Devaev Maxim <[email protected]> | 2020-11-22 04:54:03 +0300 |
commit | 6a8ee1a11470fe6572c0ca224ec370f2b4752be0 (patch) | |
tree | 0964f3545b217fda25dec791ae4523f53de5d311 /testenv/tests/validators/test_hid.py | |
parent | 5a5e3a3cc96bd9f7e5b589db11ed1ff783a7d12d (diff) |
refactoring
Diffstat (limited to 'testenv/tests/validators/test_hid.py')
-rw-r--r-- | testenv/tests/validators/test_hid.py | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/testenv/tests/validators/test_hid.py b/testenv/tests/validators/test_hid.py new file mode 100644 index 00000000..dba7dfe6 --- /dev/null +++ b/testenv/tests/validators/test_hid.py @@ -0,0 +1,98 @@ +# ========================================================================== # +# # +# KVMD - The main Pi-KVM daemon. # +# # +# Copyright (C) 2018 Maxim Devaev <[email protected]> # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see <https://www.gnu.org/licenses/>. # +# # +# ========================================================================== # + + +from typing import Any + +import pytest + +from kvmd.keyboard.mappings import KEYMAP + +from kvmd.validators import ValidatorError +from kvmd.validators.hid import valid_hid_key +from kvmd.validators.hid import valid_hid_mouse_move +from kvmd.validators.hid import valid_hid_mouse_button +from kvmd.validators.hid import valid_hid_mouse_delta + + +# ===== +def test_ok__valid_hid_key() -> None: + for key in KEYMAP: + print(valid_hid_key(key)) + print(valid_hid_key(key + " ")) + + [email protected]("arg", ["test", "", None, "keya"]) +def test_fail__valid_hid_key(arg: Any) -> None: + with pytest.raises(ValidatorError): + print(valid_hid_key(arg)) + + +# ===== [email protected]("arg", [-20000, "1 ", "-1", 1, -1, 0, "20000 "]) +def test_ok__valid_hid_mouse_move(arg: Any) -> None: + assert valid_hid_mouse_move(arg) == int(str(arg).strip()) + + +def test_ok__valid_hid_mouse_move__m50000() -> None: + assert valid_hid_mouse_move(-50000) == -32768 + + +def test_ok__valid_hid_mouse_move__p50000() -> None: + assert valid_hid_mouse_move(50000) == 32767 + + [email protected]("arg", ["test", "", None, 1.1]) +def test_fail__valid_hid_mouse_move(arg: Any) -> None: + with pytest.raises(ValidatorError): + print(valid_hid_mouse_move(arg)) + + +# ===== [email protected]("arg", ["LEFT ", "RIGHT ", "Up ", " Down", " MiDdLe "]) +def test_ok__valid_hid_mouse_button(arg: Any) -> None: + assert valid_hid_mouse_button(arg) == arg.strip().lower() + + [email protected]("arg", ["test", "", None]) +def test_fail__valid_hid_mouse_button(arg: Any) -> None: + with pytest.raises(ValidatorError): + print(valid_hid_mouse_button(arg)) + + +# ===== [email protected]("arg", [-100, "1 ", "-1", 1, -1, 0, "100 "]) +def test_ok__valid_hid_mouse_delta(arg: Any) -> None: + assert valid_hid_mouse_delta(arg) == int(str(arg).strip()) + + +def test_ok__valid_hid_mouse_delta__m200() -> None: + assert valid_hid_mouse_delta(-200) == -127 + + +def test_ok__valid_hid_mouse_delta__p200() -> None: + assert valid_hid_mouse_delta(200) == 127 + + [email protected]("arg", ["test", "", None, 1.1]) +def test_fail__valid_hid_mouse_delta(arg: Any) -> None: + with pytest.raises(ValidatorError): + print(valid_hid_mouse_delta(arg)) |