mirror of
https://github.com/arcan1s/ahriman.git
synced 2025-09-17 22:29:55 +00:00
@ -54,7 +54,8 @@ def internal_status(counters: Counters) -> InternalStatus:
|
||||
Returns:
|
||||
InternalStatus: internal status test instance
|
||||
"""
|
||||
return InternalStatus(architecture="x86_64",
|
||||
return InternalStatus(status=BuildStatus(),
|
||||
architecture="x86_64",
|
||||
packages=counters,
|
||||
version=version.__version__,
|
||||
repository="aur-clone")
|
||||
|
@ -4,31 +4,6 @@ import time
|
||||
from ahriman.models.build_status import BuildStatus, BuildStatusEnum
|
||||
|
||||
|
||||
def test_build_status_enum_badges_color() -> None:
|
||||
"""
|
||||
status color must be one of shields.io supported
|
||||
"""
|
||||
SUPPORTED_COLORS = [
|
||||
"brightgreen", "green", "yellowgreen", "yellow", "orange", "red", "blue", "lightgrey",
|
||||
"success", "important", "critical", "informational", "inactive", "blueviolet"
|
||||
]
|
||||
|
||||
for status in BuildStatusEnum:
|
||||
assert status.badges_color() in SUPPORTED_COLORS
|
||||
|
||||
|
||||
def test_build_status_enum_bootstrap_color() -> None:
|
||||
"""
|
||||
status color must be one of bootstrap supported
|
||||
"""
|
||||
SUPPORTED_COLORS = [
|
||||
"primary", "secondary", "success", "danger", "warning", "info", "light", "dark"
|
||||
]
|
||||
|
||||
for status in BuildStatusEnum:
|
||||
assert status.bootstrap_color() in SUPPORTED_COLORS
|
||||
|
||||
|
||||
def test_build_status_init_1() -> None:
|
||||
"""
|
||||
must construct status object from None
|
||||
|
@ -6,9 +6,10 @@ def test_from_option(user: User) -> None:
|
||||
"""
|
||||
must generate user from options
|
||||
"""
|
||||
user.access = UserAccess.Read
|
||||
assert User.from_option(user.username, user.password) == user
|
||||
# default is read access
|
||||
user.access = UserAccess.Write
|
||||
user.access = UserAccess.Full
|
||||
assert User.from_option(user.username, user.password) != user
|
||||
assert User.from_option(user.username, user.password, user.access) == user
|
||||
|
||||
@ -72,16 +73,16 @@ def test_verify_access_read(user: User) -> None:
|
||||
"""
|
||||
user.access = UserAccess.Read
|
||||
assert user.verify_access(UserAccess.Read)
|
||||
assert not user.verify_access(UserAccess.Write)
|
||||
assert not user.verify_access(UserAccess.Full)
|
||||
|
||||
|
||||
def test_verify_access_write(user: User) -> None:
|
||||
"""
|
||||
user with write access must be able to do anything
|
||||
"""
|
||||
user.access = UserAccess.Write
|
||||
user.access = UserAccess.Full
|
||||
assert user.verify_access(UserAccess.Read)
|
||||
assert user.verify_access(UserAccess.Write)
|
||||
assert user.verify_access(UserAccess.Full)
|
||||
|
||||
|
||||
def test_repr(user: User) -> None:
|
||||
|
@ -0,0 +1,51 @@
|
||||
from pytest_mock import MockerFixture
|
||||
|
||||
from ahriman.models.user_access import UserAccess
|
||||
|
||||
|
||||
def test_permits_full() -> None:
|
||||
"""
|
||||
full access must allow everything
|
||||
"""
|
||||
assert UserAccess.Full.permits(UserAccess.Full)
|
||||
assert UserAccess.Full.permits(UserAccess.Reporter)
|
||||
assert UserAccess.Full.permits(UserAccess.Read)
|
||||
assert UserAccess.Full.permits(UserAccess.Unauthorized)
|
||||
|
||||
|
||||
def test_permits_reporter() -> None:
|
||||
"""
|
||||
reporter access must allow everything except full
|
||||
"""
|
||||
assert not UserAccess.Reporter.permits(UserAccess.Full)
|
||||
assert UserAccess.Reporter.permits(UserAccess.Reporter)
|
||||
assert UserAccess.Reporter.permits(UserAccess.Read)
|
||||
assert UserAccess.Reporter.permits(UserAccess.Unauthorized)
|
||||
|
||||
|
||||
def test_permits_read() -> None:
|
||||
"""
|
||||
read access must allow read only and unauthorized
|
||||
"""
|
||||
assert not UserAccess.Read.permits(UserAccess.Full)
|
||||
assert not UserAccess.Read.permits(UserAccess.Reporter)
|
||||
assert UserAccess.Read.permits(UserAccess.Read)
|
||||
assert UserAccess.Read.permits(UserAccess.Unauthorized)
|
||||
|
||||
|
||||
def test_permits_unauthorized() -> None:
|
||||
"""
|
||||
unauthorized access must only allow unauthorized
|
||||
"""
|
||||
assert not UserAccess.Unauthorized.permits(UserAccess.Full)
|
||||
assert not UserAccess.Unauthorized.permits(UserAccess.Reporter)
|
||||
assert not UserAccess.Unauthorized.permits(UserAccess.Read)
|
||||
assert UserAccess.Unauthorized.permits(UserAccess.Unauthorized)
|
||||
|
||||
|
||||
def test_permits_unknown(mocker: MockerFixture) -> None:
|
||||
"""
|
||||
must return False in case if input does not match
|
||||
"""
|
||||
mocker.patch.object(UserAccess, "_member_names_", ["Read"])
|
||||
assert not UserAccess.Full.permits(UserAccess.Unauthorized)
|
||||
|
Reference in New Issue
Block a user