Coverage for bc/kwai-bc-club/src/kwai_bc_club/repositories/file_upload_preview_repository.py: 100%
14 statements
« prev ^ index » next coverage.py v7.11.0, created at 2024-01-01 00:00 +0000
« prev ^ index » next coverage.py v7.11.0, created at 2024-01-01 00:00 +0000
1"""Module that defines a file upload repository that can be used for preview."""
3from kwai_bc_club.domain.file_upload import FileUploadEntity
4from kwai_bc_club.domain.member import MemberEntity
5from kwai_bc_club.repositories.file_upload_repository import (
6 DuplicateMemberUploadedException,
7 FileUploadRepository,
8)
11class FileUploadPreviewRepository(FileUploadRepository):
12 """A file upload repository that can be used for preview.
14 This implementation doesn't save anything to the database.
15 """
17 def __init__(self) -> None:
18 self._saved_members: dict[str, MemberEntity] = {}
20 async def create(self, file_upload: FileUploadEntity) -> FileUploadEntity:
21 return file_upload
23 def is_duplicate(self, member: MemberEntity) -> bool:
24 return member.license.number in self._saved_members
26 async def save_member(self, file_upload: FileUploadEntity, member: MemberEntity):
27 if self.is_duplicate(member):
28 raise DuplicateMemberUploadedException(
29 f"Member with license {member.license.number} is already uploaded."
30 )
31 self._saved_members[member.license.number] = member