add some route tests
This commit is contained in:
parent
00486778db
commit
f97c5c8472
3 changed files with 221 additions and 20 deletions
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue