Coverage for dakweb/routers/archive.py: 100%

14 statements  

« prev     ^ index     » next       coverage.py v7.6.0, created at 2026-08-03 16:46 +0000

1# SPDX-License-Identifier: GPL-2.0-or-later 

2# © 2026, Ansgar 🙀 <ansgar@debian.org> 

3# © 2026, Anton Gladky <gladk@debian.org> 

4 

5from fastapi import APIRouter, Depends 

6from pydantic import BaseModel 

7from sqlalchemy import select 

8from sqlalchemy.orm import Session 

9 

10from daklib.dbconn import Archive 

11from dakweb.routers.deps import get_db 

12 

13router = APIRouter() 

14 

15 

16class Archives(BaseModel): 

17 name: str 

18 suites: list[str] 

19 

20 

21@router.get("/archives") 

22def archives(db: Session = Depends(get_db)) -> list[Archives]: 

23 """Give information about all known archives (sets of suites).""" 

24 

25 stmt = select(Archive).order_by(Archive.archive_name) 

26 

27 return [ 

28 Archives( 

29 name=archive.archive_name, 

30 suites=[suite.suite_name for suite in archive.suites], 

31 ) 

32 for archive in db.scalars(stmt) 

33 ]