import uuid def _url(edition, suffix=""): return f"/editions/{edition.id}/positions{suffix}" def test_position_crud_roundtrip(client, edition): created = client.post( _url(edition), json={"name": "Billetterie", "category": "TICKETING", "location": "Entrée A"}, ) assert created.status_code == 201 pid = created.json()["id"] assert created.json()["category"] == "TICKETING" assert client.get(_url(edition, f"/{pid}")).json()["name"] == "Billetterie" assert [p["name"] for p in client.get(_url(edition)).json()] == ["Billetterie"] patched = client.patch( _url(edition, f"/{pid}"), json={"location": "Entrée B"} ) assert patched.json()["location"] == "Entrée B" assert patched.json()["name"] == "Billetterie" assert client.delete(_url(edition, f"/{pid}")).status_code == 204 assert client.get(_url(edition, f"/{pid}")).status_code == 404 def test_unknown_position_is_404(client, edition): assert client.get(_url(edition, f"/{uuid.uuid4()}")).status_code == 404 def test_unknown_edition_is_404(client): assert ( client.get(f"/editions/{uuid.uuid4()}/positions").status_code == 404 )