"""Smoke-Tests fuer den Zuechter-Profil-Editor-Endpoint (/breeder/my-editor).""" def test_my_editor_requires_breeder(client, user): r = client.get("/api/breeder/my-editor", headers=user["headers"]) assert r.status_code == 403 def test_my_editor_without_profile_404(client, admin): """Admin ohne Zuechterprofil -> klare 404-Meldung statt Frontend-Crash.""" r = client.get("/api/breeder/my-editor", headers=admin["headers"]) assert r.status_code == 404 assert "Profil" in r.json()["detail"] def test_my_editor_with_profile(client, user): """Zuechter mit Profil -> profile + litters + storage.""" from database import db with db() as conn: uid = conn.execute("SELECT id FROM users WHERE email=?", (user["email"],)).fetchone()["id"] conn.execute("UPDATE users SET rolle='breeder' WHERE id=?", (uid,)) conn.execute( """INSERT INTO breeder_profiles (user_id, zwingername, rasse_text, verein, stadt) VALUES (?,?,?,?,?)""", (uid, "Vom Teststall", "Labrador", "VDH", "Ebersberg") ) r = client.get("/api/breeder/my-editor", headers=user["headers"]) assert r.status_code == 200, r.text d = r.json() assert d["profile"]["zwingername"] == "Vom Teststall" assert isinstance(d["litters"], list) assert d["storage_limit_mb"] == 200 assert d["storage_mb"] >= 0