rename classes in order to make documentation reference work

This commit is contained in:
2022-04-18 05:30:02 +03:00
parent 6ebbb04504
commit 1cfc751d21
19 changed files with 188 additions and 175 deletions

View File

@ -4,12 +4,12 @@ import pytest
from pathlib import Path
from pytest_mock import MockerFixture
from ahriman.application.handlers import User
from ahriman.application.handlers import Users
from ahriman.core.configuration import Configuration
from ahriman.core.database.sqlite import SQLite
from ahriman.core.exceptions import InitializeException
from ahriman.models.action import Action
from ahriman.models.user import User as MUser
from ahriman.models.user import User
from ahriman.models.user_access import UserAccess
@ -38,16 +38,16 @@ def test_run(args: argparse.Namespace, configuration: Configuration, database: S
must run command
"""
args = _default_args(args)
user = MUser(args.username, args.password, args.role)
user = User(args.username, args.password, args.role)
mocker.patch("ahriman.core.database.sqlite.SQLite.load", return_value=database)
mocker.patch("ahriman.models.user.User.hash_password", return_value=user)
get_auth_configuration_mock = mocker.patch("ahriman.application.handlers.User.configuration_get")
create_configuration_mock = mocker.patch("ahriman.application.handlers.User.configuration_create")
create_user_mock = mocker.patch("ahriman.application.handlers.User.user_create", return_value=user)
get_salt_mock = mocker.patch("ahriman.application.handlers.User.get_salt", return_value="salt")
get_auth_configuration_mock = mocker.patch("ahriman.application.handlers.Users.configuration_get")
create_configuration_mock = mocker.patch("ahriman.application.handlers.Users.configuration_create")
create_user_mock = mocker.patch("ahriman.application.handlers.Users.user_create", return_value=user)
get_salt_mock = mocker.patch("ahriman.application.handlers.Users.get_salt", return_value="salt")
update_mock = mocker.patch("ahriman.core.database.sqlite.SQLite.user_update")
User.run(args, "x86_64", configuration, True, False)
Users.run(args, "x86_64", configuration, True, False)
get_auth_configuration_mock.assert_called_once_with(configuration.include)
create_configuration_mock.assert_called_once_with(pytest.helpers.anyvar(int), pytest.helpers.anyvar(int),
pytest.helpers.anyvar(int), args.as_service, args.secure)
@ -67,7 +67,7 @@ def test_run_list(args: argparse.Namespace, configuration: Configuration, databa
check_mock = mocker.patch("ahriman.application.handlers.handler.Handler.check_if_empty")
list_mock = mocker.patch("ahriman.core.database.sqlite.SQLite.user_list", return_value=[user])
User.run(args, "x86_64", configuration, True, False)
Users.run(args, "x86_64", configuration, True, False)
list_mock.assert_called_once_with("user", args.role)
check_mock.assert_called_once_with(False, False)
@ -84,7 +84,7 @@ def test_run_empty_exception(args: argparse.Namespace, configuration: Configurat
mocker.patch("ahriman.core.database.sqlite.SQLite.user_list", return_value=[])
check_mock = mocker.patch("ahriman.application.handlers.handler.Handler.check_if_empty")
User.run(args, "x86_64", configuration, True, False)
Users.run(args, "x86_64", configuration, True, False)
check_mock.assert_called_once_with(True, True)
@ -98,36 +98,36 @@ def test_run_remove(args: argparse.Namespace, configuration: Configuration, data
mocker.patch("ahriman.core.database.sqlite.SQLite.load", return_value=database)
remove_mock = mocker.patch("ahriman.core.database.sqlite.SQLite.user_remove")
User.run(args, "x86_64", configuration, True, False)
Users.run(args, "x86_64", configuration, True, False)
remove_mock.assert_called_once_with(args.username)
def test_configuration_create(configuration: Configuration, user: MUser, mocker: MockerFixture) -> None:
def test_configuration_create(configuration: Configuration, user: User, mocker: MockerFixture) -> None:
"""
must correctly create configuration file
"""
mocker.patch("pathlib.Path.open")
set_mock = mocker.patch("ahriman.core.configuration.Configuration.set_option")
write_mock = mocker.patch("ahriman.application.handlers.User.configuration_write")
write_mock = mocker.patch("ahriman.application.handlers.Users.configuration_write")
User.configuration_create(configuration, user, "salt", False, False)
Users.configuration_create(configuration, user, "salt", False, False)
set_mock.assert_called_once_with("auth", "salt", pytest.helpers.anyvar(int))
write_mock.assert_called_once_with(configuration, False)
def test_configuration_create_with_plain_password(
configuration: Configuration,
user: MUser,
user: User,
mocker: MockerFixture) -> None:
"""
must set plain text password and user for the service
"""
mocker.patch("pathlib.Path.open")
User.configuration_create(configuration, user, "salt", True, False)
Users.configuration_create(configuration, user, "salt", True, False)
generated = MUser.from_option(user.username, user.password).hash_password("salt")
service = MUser.from_option(configuration.get("web", "username"), configuration.get("web", "password"))
generated = User.from_option(user.username, user.password).hash_password("salt")
service = User.from_option(configuration.get("web", "username"), configuration.get("web", "password"))
assert generated.username == service.username
assert generated.check_credentials(service.password, configuration.get("auth", "salt"))
@ -140,7 +140,7 @@ def test_configuration_get(mocker: MockerFixture) -> None:
mocker.patch("pathlib.Path.is_file", return_value=True)
read_mock = mocker.patch("ahriman.core.configuration.Configuration.read")
assert User.configuration_get(Path("path"))
assert Users.configuration_get(Path("path"))
read_mock.assert_called_once_with(Path("path") / "auth.ini")
@ -152,7 +152,7 @@ def test_configuration_write(configuration: Configuration, mocker: MockerFixture
write_mock = mocker.patch("ahriman.core.configuration.Configuration.write")
chmod_mock = mocker.patch("pathlib.Path.chmod")
User.configuration_write(configuration, secure=True)
Users.configuration_write(configuration, secure=True)
write_mock.assert_called_once_with(pytest.helpers.anyvar(int))
chmod_mock.assert_called_once_with(0o600)
@ -165,7 +165,7 @@ def test_configuration_write_insecure(configuration: Configuration, mocker: Mock
mocker.patch("ahriman.core.configuration.Configuration.write")
chmod_mock = mocker.patch("pathlib.Path.chmod")
User.configuration_write(configuration, secure=False)
Users.configuration_write(configuration, secure=False)
chmod_mock.assert_not_called()
@ -177,14 +177,14 @@ def test_configuration_write_not_loaded(configuration: Configuration, mocker: Mo
mocker.patch("pathlib.Path.open")
with pytest.raises(InitializeException):
User.configuration_write(configuration, secure=True)
Users.configuration_write(configuration, secure=True)
def test_get_salt_read(configuration: Configuration) -> None:
"""
must read salt from configuration
"""
assert User.get_salt(configuration) == "salt"
assert Users.get_salt(configuration) == "salt"
def test_get_salt_generate(configuration: Configuration) -> None:
@ -193,17 +193,17 @@ def test_get_salt_generate(configuration: Configuration) -> None:
"""
configuration.remove_option("auth", "salt")
salt = User.get_salt(configuration, 16)
salt = Users.get_salt(configuration, 16)
assert salt
assert len(salt) == 16
def test_user_create(args: argparse.Namespace, user: MUser) -> None:
def test_user_create(args: argparse.Namespace, user: User) -> None:
"""
must create user
"""
args = _default_args(args)
generated = User.user_create(args)
generated = Users.user_create(args)
assert generated.username == user.username
assert generated.access == user.access
@ -216,7 +216,7 @@ def test_user_create_getpass(args: argparse.Namespace, mocker: MockerFixture) ->
args.password = None
getpass_mock = mocker.patch("getpass.getpass", return_value="password")
generated = User.user_create(args)
generated = Users.user_create(args)
getpass_mock.assert_called_once_with()
assert generated.password == "password"
@ -226,4 +226,4 @@ def test_disallow_auto_architecture_run() -> None:
"""
must not allow multi architecture run
"""
assert not User.ALLOW_AUTO_ARCHITECTURE_RUN
assert not Users.ALLOW_AUTO_ARCHITECTURE_RUN