This commit is contained in:
team3
2026-09-30 01:16:47 +02:00
parent c589e389df
commit 70b37054ba
4 changed files with 146 additions and 31 deletions

View File

@@ -60,23 +60,52 @@ def test_clip_zu_altem_abend(client, film, monkeypatch):
# Keine Aufnahme an dem Tag
async def keine(watched_at):
return None
return []
monkeypatch.setattr(clips, "aufnahme_des_abends", keine)
monkeypatch.setattr(clips, "aufnahmen_des_abends", keine)
assert client.get(f"/api/clips/von-film/{film(4)}").json()["stuecke"] == []
antwort = client.post("/api/clips/von-film", json={"movie_id": film(4)})
assert antwort.status_code == 404 and "Aufnahme" in antwort.json()["detail"]
# Mit Aufnahme: die Marke liegt kurz nach ihrem Beginn
beginn = datetime(2026, 9, 23, 19, 0, tzinfo=timezone.utc)
# Zwei Stücke, weil der Stream neu gestartet wurde
stuecke = [
{"start": "2026-09-23T19:00:00+00:00", "dauer": 1800.0},
{"start": "2026-09-23T20:00:00+00:00", "dauer": 600.0},
]
async def da(watched_at):
return beginn
return stuecke
monkeypatch.setattr(clips, "aufnahme_des_abends", da)
monkeypatch.setattr(clips, "aufnahmen_des_abends", da)
assert client.get(f"/api/clips/von-film/{film(4)}").json()["stuecke"] == stuecke
# Ohne Wahl: die Marke liegt kurz nach dem Beginn des ersten Stücks
m = client.post("/api/clips/von-film", json={"movie_id": film(4)}).json()
assert m["movie_id"] == film(4)
assert m["marke_at"] == "2026-09-23T19:01:00+00:00"
# Mit Wahl: nach dem Beginn des gewählten Stücks
m = client.post(
"/api/clips/von-film", json={"movie_id": film(4), "start": stuecke[1]["start"]}
).json()
assert m["marke_at"] == "2026-09-23T20:01:00+00:00"
def test_stuecke_eines_abends_nach_beginn_geordnet(monkeypatch):
import asyncio
async def segmente(von, bis):
return [
{"start": "2026-09-23T21:00:00Z", "duration": 600.0},
{"start": "2026-09-23T19:00:00Z", "duration": 1800.04},
]
monkeypatch.setattr(clips, "_segmente", segmente)
assert asyncio.run(clips.aufnahmen_des_abends("2026-09-23T20:00:00+00:00")) == [
{"start": "2026-09-23T19:00:00+00:00", "dauer": 1800.0},
{"start": "2026-09-23T21:00:00+00:00", "dauer": 600.0},
]
def test_fremde_sehen_nichts_der_host_alles(client, client2, zuschauer, hostmodus):
m = marke(client)