"""Tests zum Stapel-Import. Entwürfe entstehen beim Hochladen vieler Fotos auf einmal und haben noch keine Angaben. Entscheidend ist, dass sie nicht in der Galerie auftauchen. """ from app import crud def test_entwuerfe_erscheinen_nicht_in_der_galerie(client, db_sitzung, kategorie_id): crud.entwuerfe_anlegen(db_sitzung, 3) client.post("/api/v1/items", json={"size": "80", "category_id": kategorie_id}) galerie = client.get("/api/v1/items").json() assert galerie["total"] == 1 entwuerfe = client.get("/api/v1/items?status=draft").json() assert entwuerfe["total"] == 3 def test_entwurf_darf_unvollstaendig_sein(client, db_sitzung): entwurf = crud.entwuerfe_anlegen(db_sitzung, 1)[0] assert entwurf.size is None assert entwurf.category_id is None assert entwurf.anzeige_titel == "Kleidungsstück" def test_entwurf_wird_durch_nachtragen_sichtbar(client, db_sitzung, kategorie_id): entwurf = crud.entwuerfe_anlegen(db_sitzung, 1)[0] antwort = client.patch( f"/api/v1/items/{entwurf.id}", json={"size": "92", "category_id": kategorie_id, "status": "available"}, ) assert antwort.status_code == 200 assert client.get("/api/v1/items").json()["total"] == 1 def test_unvollstaendiger_eintrag_kann_nicht_veroeffentlicht_werden( client, db_sitzung ): """Die CHECK-Bedingung greift auch dann, wenn die Route es zuliesse.""" entwurf = crud.entwuerfe_anlegen(db_sitzung, 1)[0] antwort = client.patch(f"/api/v1/items/{entwurf.id}", json={"status": "available"}) assert antwort.status_code == 422 def test_entwurf_kann_nicht_reserviert_werden(client, db_sitzung): entwurf = crud.entwuerfe_anlegen(db_sitzung, 1)[0] antwort = client.post( f"/api/v1/items/{entwurf.id}/reserve", json={"reserved_by": "Wer auch immer"} ) assert antwort.status_code == 404