diff options
Diffstat (limited to 'tests/test_validators_basic.py')
-rw-r--r-- | tests/test_validators_basic.py | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/tests/test_validators_basic.py b/tests/test_validators_basic.py new file mode 100644 index 00000000..0231e29a --- /dev/null +++ b/tests/test_validators_basic.py @@ -0,0 +1,107 @@ +# ========================================================================== # +# # +# 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.validators import ValidatorError +from kvmd.validators.basic import valid_bool +from kvmd.validators.basic import valid_number +from kvmd.validators.basic import valid_int_f1 +from kvmd.validators.basic import valid_float_f01 + + +# ===== [email protected]("arg, retval", [ + ("1", True), + ("true", True), + ("TRUE", True), + ("yes ", True), + (1, True), + (True, True), + ("0", False), + ("false", False), + ("FALSE", False), + ("no ", False), + (0, False), + (False, False), +]) +def test_ok__valid_bool(arg: Any, retval: bool) -> None: + assert valid_bool(arg) == retval + + [email protected]("arg", ["test", "", None, -1, "x"]) +def test_fail__valid_bool(arg: Any) -> None: + with pytest.raises(ValidatorError): + print(valid_bool(arg)) + + +# ===== [email protected]("arg", ["1 ", "-1", 1, -1, 0, 100500]) +def test_ok__valid_number(arg: Any) -> None: + assert valid_number(arg) == int(str(arg).strip()) + + [email protected]("arg", ["test", "", None, "1x", 100500.0]) +def test_fail__valid_number(arg: Any) -> None: + with pytest.raises(ValidatorError): + print(valid_number(arg)) + + [email protected]("arg", [-5, 0, 5, "-5 ", "0 ", "5 "]) +def test_ok__valid_number__min_max(arg: Any) -> None: + assert valid_number(arg, -5, 5) == int(str(arg).strip()) + + [email protected]("arg", ["test", "", None, -6, 6, "-6 ", "6 "]) +def test_fail__valid_number__min_max(arg: Any) -> None: # pylint: disable=invalid-name + with pytest.raises(ValidatorError): + print(valid_number(arg, -5, 5)) + + +# ===== [email protected]("arg", [1, 5, "5 "]) +def test_ok__valid_int_f1(arg: Any) -> None: + value = valid_int_f1(arg) + assert type(value) == int # pylint: disable=unidiomatic-typecheck + assert value == int(str(arg).strip()) + + [email protected]("arg", ["test", "", None, -6, "-6 ", 0, "0 ", "5.0"]) +def test_fail__valid_int_f1(arg: Any) -> None: + with pytest.raises(ValidatorError): + print(valid_int_f1(arg)) + + +# ===== [email protected]("arg", [0.1, 1, 5, "5 ", "5.0 "]) +def test_ok__valid_float_f01(arg: Any) -> None: + value = valid_float_f01(arg) + assert type(value) == float # pylint: disable=unidiomatic-typecheck + assert value == float(str(arg).strip()) + + [email protected]("arg", ["test", "", None, 0.0, "0.0", -6, "-6", 0, "0"]) +def test_fail__valid_float_f01(arg: Any) -> None: + with pytest.raises(ValidatorError): + print(valid_float_f01(arg)) |