import pytest from tests.conftest import auth_header, login @pytest.mark.asyncio async def test_notiz_anlegen_und_lesen(client, objekt_mit_position, mitarbeiter_user): objekt, _material = objekt_mit_position token = await login(client, "mitarbeiter1") angelegt = await client.post( "/api/v1/notizen", json={"entitaet_typ": "objekt", "entitaet_id": str(objekt.id), "text": "Funkgerät klemmt manchmal"}, headers=auth_header(token), ) assert angelegt.status_code == 201 zweite = await client.post( "/api/v1/notizen", json={"entitaet_typ": "objekt", "entitaet_id": str(objekt.id), "text": "Rücksprache Hersteller 12.03."}, headers=auth_header(token), ) assert zweite.status_code == 201 liste = await client.get( f"/api/v1/notizen?entitaet_typ=objekt&entitaet_id={objekt.id}", headers=auth_header(token) ) assert liste.status_code == 200 daten = liste.json() assert len(daten) == 2 # neueste zuerst assert daten[0]["text"] == "Rücksprache Hersteller 12.03." @pytest.mark.asyncio async def test_fremde_notiz_nicht_loeschbar_ausser_admin(client, objekt_mit_position, mitarbeiter_user, admin_user): objekt, _material = objekt_mit_position token_mitarbeiter = await login(client, "mitarbeiter1") angelegt = await client.post( "/api/v1/notizen", json={"entitaet_typ": "objekt", "entitaet_id": str(objekt.id), "text": "Testnotiz"}, headers=auth_header(token_mitarbeiter), ) notiz_id = angelegt.json()["id"] token_admin = await login(client, "admin1") abgelehnt = await client.delete(f"/api/v1/notizen/{notiz_id}", headers=auth_header(token_mitarbeiter)) # eigene Notiz darf der Autor selbst löschen assert abgelehnt.status_code == 204 zweite = await client.post( "/api/v1/notizen", json={"entitaet_typ": "objekt", "entitaet_id": str(objekt.id), "text": "Zweite Notiz"}, headers=auth_header(token_mitarbeiter), ) zweite_id = zweite.json()["id"] erlaubt = await client.delete(f"/api/v1/notizen/{zweite_id}", headers=auth_header(token_admin)) assert erlaubt.status_code == 204