auto-commit for 14921357-f5e2-4aba-b4c1-a07a52c800cc

This commit is contained in:
emergent-agent-e1
2026-04-29 16:01:20 +00:00
parent 1d4bd4f513
commit cdc8c8955f
19 changed files with 1933 additions and 339 deletions
+16 -16
View File
@@ -98,8 +98,8 @@ class TestAuth:
# ---------- Movies (public) ----------
class TestMovies:
def test_list_movies_seeded(self, api):
r = api.get(f"{BASE_URL}/api/movies")
def test_list_movies_seeded(self, api, admin_headers):
r = api.get(f"{BASE_URL}/api/movies", headers=admin_headers)
assert r.status_code == 200
movies = r.json()
assert isinstance(movies, list)
@@ -111,8 +111,8 @@ class TestMovies:
for f in ("id", "title", "video_url", "storage_type"):
assert f in m
def test_featured(self, api):
r = api.get(f"{BASE_URL}/api/movies/featured")
def test_featured(self, api, admin_headers):
r = api.get(f"{BASE_URL}/api/movies/featured", headers=admin_headers)
assert r.status_code == 200
m = r.json()
assert m["title"] == "Big Buck Bunny"
@@ -130,15 +130,15 @@ class TestMovies:
r = api.get(f"{BASE_URL}/api/movies/nonexistent-id-xyz")
assert r.status_code == 404
def test_get_movie_by_id(self, api):
movies = api.get(f"{BASE_URL}/api/movies").json()
def test_get_movie_by_id(self, api, admin_headers):
movies = api.get(f"{BASE_URL}/api/movies", headers=admin_headers).json()
mid = movies[0]["id"]
r = api.get(f"{BASE_URL}/api/movies/{mid}")
assert r.status_code == 200
assert r.json()["id"] == mid
def test_search_query(self, api):
r = api.get(f"{BASE_URL}/api/movies", params={"q": "bunny"})
def test_search_query(self, api, admin_headers):
r = api.get(f"{BASE_URL}/api/movies", params={"q": "bunny"}, headers=admin_headers)
assert r.status_code == 200
results = r.json()
assert any("bunny" in m["title"].lower() for m in results)
@@ -191,8 +191,8 @@ class TestMoviesAdmin:
# ---------- Watchlist ----------
class TestWatchlist:
def test_watchlist_flow(self, api, member_headers):
movies = api.get(f"{BASE_URL}/api/movies").json()
def test_watchlist_flow(self, api, member_headers, admin_headers):
movies = api.get(f"{BASE_URL}/api/movies", headers=admin_headers).json()
mid = movies[0]["id"]
r = api.post(f"{BASE_URL}/api/watchlist/{mid}", headers=member_headers)
@@ -220,8 +220,8 @@ class TestWatchlist:
# ---------- Progress ----------
class TestProgress:
def test_progress_upsert_and_continue(self, api, member_headers):
movies = api.get(f"{BASE_URL}/api/movies").json()
def test_progress_upsert_and_continue(self, api, member_headers, admin_headers):
movies = api.get(f"{BASE_URL}/api/movies", headers=admin_headers).json()
mid = movies[1]["id"]
r = api.post(f"{BASE_URL}/api/progress",
json={"movie_id": mid, "position_seconds": 30, "duration_seconds": 600},
@@ -276,15 +276,15 @@ class TestRequests:
# ---------- Streaming ----------
class TestStream:
def test_stream_no_token(self, api):
movies = api.get(f"{BASE_URL}/api/movies").json()
def test_stream_no_token(self, api, admin_headers):
movies = api.get(f"{BASE_URL}/api/movies", headers=admin_headers).json()
mid = movies[0]["id"]
r = api.get(f"{BASE_URL}/api/stream/{mid}", allow_redirects=False)
assert r.status_code == 401
def test_stream_external_returns_400(self, api, admin_token):
def test_stream_external_returns_400(self, api, admin_token, admin_headers):
# All seeded movies are storage_type=external -> should 400
movies = api.get(f"{BASE_URL}/api/movies").json()
movies = api.get(f"{BASE_URL}/api/movies", headers=admin_headers).json()
mid = movies[0]["id"]
r = api.get(f"{BASE_URL}/api/stream/{mid}", params={"auth": admin_token}, allow_redirects=False)
assert r.status_code == 400