From 4a0f74897ce07635b448ed61e86ad89732007b35 Mon Sep 17 00:00:00 2001 From: Devaev Maxim Date: Wed, 10 Apr 2019 21:45:31 +0300 Subject: validators fs -> os --- tests/test_validators_fs.py | 118 -------------------------------------------- tests/test_validators_os.py | 118 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 118 insertions(+), 118 deletions(-) delete mode 100644 tests/test_validators_fs.py create mode 100644 tests/test_validators_os.py (limited to 'tests') diff --git a/tests/test_validators_fs.py b/tests/test_validators_fs.py deleted file mode 100644 index c2f13393..00000000 --- a/tests/test_validators_fs.py +++ /dev/null @@ -1,118 +0,0 @@ -# ========================================================================== # -# # -# KVMD - The main Pi-KVM daemon. # -# # -# Copyright (C) 2018 Maxim Devaev # -# # -# 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 . # -# # -# ========================================================================== # - - -import os - -from typing import List -from typing import Any - -import pytest - -from kvmd.validators import ValidatorError -from kvmd.validators.fs import valid_abs_path -from kvmd.validators.fs import valid_abs_path_exists -from kvmd.validators.fs import valid_unix_mode -from kvmd.validators.fs import valid_command - - -# ===== -@pytest.mark.parametrize("arg, retval", [ - ("/..", "/"), - ("/root/..", "/"), - ("/root", "/root"), - ("/f/o/o/b/a/r", "/f/o/o/b/a/r"), - ("~", os.path.abspath(".") + "/~"), - ("/foo~", "/foo~"), - ("/foo/~", "/foo/~"), - (".", os.path.abspath(".")), -]) -def test_ok__valid_abs_path(arg: Any, retval: str) -> None: - assert valid_abs_path(arg) == retval - - -@pytest.mark.parametrize("arg", ["", " ", None]) -def test_fail__valid_abs_path(arg: Any) -> None: - with pytest.raises(ValidatorError): - print(valid_abs_path(arg)) - - -# ===== -@pytest.mark.parametrize("arg, retval", [ - ("/..", "/"), - ("/root/..", "/"), - ("/root", "/root"), - (".", os.path.abspath(".")), -]) -def test_ok__valid_abs_path_exists(arg: Any, retval: str) -> None: - assert valid_abs_path_exists(arg) == retval - - -@pytest.mark.parametrize("arg", [ - "/f/o/o/b/a/r", - "~", - "/foo~", - "/foo/~", - "", - None, -]) -def test_fail__valid_abs_path_exists(arg: Any) -> None: - with pytest.raises(ValidatorError): - print(valid_abs_path_exists(arg)) - - -# ===== -@pytest.mark.parametrize("arg", [0, 5, "1000"]) -def test_ok__valid_unix_mode(arg: Any) -> None: - value = valid_unix_mode(arg) - assert type(value) == int # pylint: disable=unidiomatic-typecheck - assert value == int(str(value).strip()) - - -@pytest.mark.parametrize("arg", ["test", "", None, -6, "-6", "5.0"]) -def test_fail__valid_unix_mode(arg: Any) -> None: - with pytest.raises(ValidatorError): - print(valid_unix_mode(arg)) - - -# ===== -@pytest.mark.parametrize("arg, retval", [ - (["/bin/true"], ["/bin/true"]), - (["/bin/true", 1, 2, 3], ["/bin/true", "1", "2", "3"]), - ("/bin/true, 1, 2, 3,", ["/bin/true", "1", "2", "3"]), - ("/bin/true", ["/bin/true"]), -]) -def test_ok__valid_command(arg: Any, retval: List[str]) -> None: - assert valid_command(arg) == retval - - -@pytest.mark.parametrize("arg", [ - ["/bin/blahblahblah"], - ["/bin/blahblahblah", 1, 2, 3], - [" "], - [], - "/bin/blahblahblah, 1, 2, 3,", - "/bin/blahblahblah", - " ", -]) -def test_fail__valid_command(arg: Any) -> None: - with pytest.raises(ValidatorError): - print(valid_command(arg)) diff --git a/tests/test_validators_os.py b/tests/test_validators_os.py new file mode 100644 index 00000000..b280b4b3 --- /dev/null +++ b/tests/test_validators_os.py @@ -0,0 +1,118 @@ +# ========================================================================== # +# # +# KVMD - The main Pi-KVM daemon. # +# # +# Copyright (C) 2018 Maxim Devaev # +# # +# 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 . # +# # +# ========================================================================== # + + +import os + +from typing import List +from typing import Any + +import pytest + +from kvmd.validators import ValidatorError +from kvmd.validators.os import valid_abs_path +from kvmd.validators.os import valid_abs_path_exists +from kvmd.validators.os import valid_unix_mode +from kvmd.validators.os import valid_command + + +# ===== +@pytest.mark.parametrize("arg, retval", [ + ("/..", "/"), + ("/root/..", "/"), + ("/root", "/root"), + ("/f/o/o/b/a/r", "/f/o/o/b/a/r"), + ("~", os.path.abspath(".") + "/~"), + ("/foo~", "/foo~"), + ("/foo/~", "/foo/~"), + (".", os.path.abspath(".")), +]) +def test_ok__valid_abs_path(arg: Any, retval: str) -> None: + assert valid_abs_path(arg) == retval + + +@pytest.mark.parametrize("arg", ["", " ", None]) +def test_fail__valid_abs_path(arg: Any) -> None: + with pytest.raises(ValidatorError): + print(valid_abs_path(arg)) + + +# ===== +@pytest.mark.parametrize("arg, retval", [ + ("/..", "/"), + ("/root/..", "/"), + ("/root", "/root"), + (".", os.path.abspath(".")), +]) +def test_ok__valid_abs_path_exists(arg: Any, retval: str) -> None: + assert valid_abs_path_exists(arg) == retval + + +@pytest.mark.parametrize("arg", [ + "/f/o/o/b/a/r", + "~", + "/foo~", + "/foo/~", + "", + None, +]) +def test_fail__valid_abs_path_exists(arg: Any) -> None: + with pytest.raises(ValidatorError): + print(valid_abs_path_exists(arg)) + + +# ===== +@pytest.mark.parametrize("arg", [0, 5, "1000"]) +def test_ok__valid_unix_mode(arg: Any) -> None: + value = valid_unix_mode(arg) + assert type(value) == int # pylint: disable=unidiomatic-typecheck + assert value == int(str(value).strip()) + + +@pytest.mark.parametrize("arg", ["test", "", None, -6, "-6", "5.0"]) +def test_fail__valid_unix_mode(arg: Any) -> None: + with pytest.raises(ValidatorError): + print(valid_unix_mode(arg)) + + +# ===== +@pytest.mark.parametrize("arg, retval", [ + (["/bin/true"], ["/bin/true"]), + (["/bin/true", 1, 2, 3], ["/bin/true", "1", "2", "3"]), + ("/bin/true, 1, 2, 3,", ["/bin/true", "1", "2", "3"]), + ("/bin/true", ["/bin/true"]), +]) +def test_ok__valid_command(arg: Any, retval: List[str]) -> None: + assert valid_command(arg) == retval + + +@pytest.mark.parametrize("arg", [ + ["/bin/blahblahblah"], + ["/bin/blahblahblah", 1, 2, 3], + [" "], + [], + "/bin/blahblahblah, 1, 2, 3,", + "/bin/blahblahblah", + " ", +]) +def test_fail__valid_command(arg: Any) -> None: + with pytest.raises(ValidatorError): + print(valid_command(arg)) -- cgit v1.2.3