add some route tests

This commit is contained in:
ducklet 2023-03-18 23:30:40 +01:00
parent 00486778db
commit f97c5c8472
3 changed files with 221 additions and 20 deletions

View file

@ -13,6 +13,7 @@ from typing import (
Mapping,
Type,
TypeVar,
TypedDict,
Union,
get_args,
get_origin,
@ -331,6 +332,11 @@ Access = Literal[
]
class UserGroup(TypedDict):
id: str
access: Access
@dataclass
class User:
_table: ClassVar[str] = "users"
@ -339,7 +345,7 @@ class User:
imdb_id: str = None
name: str = None # canonical user name
secret: str = None
groups: list[dict[str, str]] = field(default_factory=list)
groups: list[UserGroup] = field(default_factory=list)
def has_access(self, group_id: ULID | str, access: Access = "r"):
group_id = group_id if isinstance(group_id, str) else str(group_id)
@ -355,10 +361,15 @@ class User:
self.groups.append({"id": group_id, "access": access})
class GroupUser(TypedDict):
id: str
name: str
@dataclass
class Group:
_table: ClassVar[str] = "groups"
id: ULID = field(default_factory=ULID)
name: str = None
users: list[dict[str, str]] = field(default_factory=list)
users: list[GroupUser] = field(default_factory=list)