This commit is contained in:
team3
2026-09-30 01:24:49 +02:00
parent 70b37054ba
commit ae5b1d0b1d
8 changed files with 209 additions and 2 deletions

View File

@@ -204,3 +204,42 @@ def test_loeschen_nimmt_die_datei_mit(client):
def test_zuschauer_darf_keine_marke_setzen(zuschauer):
assert zuschauer.post("/api/clips").status_code == 403
def test_segmente_eines_stuecks():
segmente = [
{"start": "2026-09-23T19:00:00.5Z"},
{"start": "2026-09-23T19:00:30.5Z"},
{"start": "2026-09-23T19:01:00.5Z"},
{"start": "2026-09-23T21:00:00Z"},
]
# Das Stück von 19:00 mit 61 s Dauer: drei Segmente, das von 21:00 nicht
assert clips._im_stueck(segmente, "2026-09-23T19:00:00+00:00", 61.0) == [
"2026-09-23T19:00:00.5Z",
"2026-09-23T19:00:30.5Z",
"2026-09-23T19:01:00.5Z",
]
def test_aufnahmen_verwaltet_nur_der_host(client, zuschauer, hostmodus, monkeypatch):
stuecke = [{"start": "2026-09-23T19:00:00+00:00", "dauer": 60.0}]
async def alle():
return stuecke
geloescht = []
async def loeschen(start, dauer):
geloescht.append((start, dauer))
return 2
monkeypatch.setattr(clips, "aufnahmen_alle", alle)
monkeypatch.setattr(clips, "aufnahme_loeschen", loeschen)
assert client.get("/api/aufnahmen").status_code == 403
assert client.delete("/api/aufnahmen", params={"start": stuecke[0]["start"], "dauer": 60}).status_code == 403
hostmodus(zuschauer)
assert zuschauer.get("/api/aufnahmen").json()["stuecke"] == stuecke
antwort = zuschauer.delete("/api/aufnahmen", params={"start": stuecke[0]["start"], "dauer": 60})
assert antwort.json() == {"segmente": 2}
assert geloescht == [(stuecke[0]["start"], 60.0)]