Coverage for arclith / application / use_cases / find_all.py: 100%

14 statements  

« prev     ^ index     » next       coverage.py v7.13.5, created at 2026-03-25 15:02 +0100

1from typing import Generic, TypeVar 

2 

3from arclith.domain.models.entity import Entity 

4from arclith.domain.ports.logger import Logger 

5from arclith.domain.ports.repository import Repository 

6 

7T = TypeVar("T", bound=Entity) 

8 

9 

10class FindAllUseCase(Generic[T]): 

11 def __init__(self, repository: Repository[T], logger: Logger) -> None: 

12 self._repository = repository 

13 self._logger = logger 

14 

15 async def execute(self) -> list[T]: 

16 self._logger.info("📋 Finding all entities") 

17 result = [e for e in await self._repository.find_all() if not e.is_deleted] 

18 self._logger.info("✅ Entities found", count=len(result)) 

19 return result 

20