from datetime import date from conftest import login_ready, new_user def test_users_are_isolated(admin): # Admin legt ein Konto an. acc = admin.post("/api/accounts", json={"name": "AdminKonto", "currency": "EUR"}).json() # Frischen Nutzer anlegen und getrennt einloggen. username, password = new_user(admin) other, _ = login_ready(username, password) # Sieht keine fremden Konten/Buchungen. assert other.get("/api/accounts").json() == [] assert other.get("/api/transactions").json() == [] # Zugriff auf fremdes Konto -> 404 (nicht 403: existiert für ihn schlicht nicht). assert other.get(f"/api/accounts/{acc['id']}").status_code == 404 # Buchung auf fremdes Konto -> 404. r = other.post("/api/transactions", json={ "type": "expense", "date": str(date.today()), "account_id": acc["id"], "amount_cents": 100, }) assert r.status_code == 404 # Eigene Startkategorien sind vorhanden. assert len(other.get("/api/categories").json()) >= 6 # Kein Admin: darf keine Nutzer listen. assert other.get("/api/users").status_code == 403