510: def test_delete_and_clear_all(self, api, db): 561: def test_preview_renders_real_messages(self, api, db): def test_delete_and_clear_all(self, api, db): f = _seed_campaign_fixture(db, user_id_of(api)) c1 = api.post("/campaigns/create", headers=H(api), json=_cIn(f, name="D1")).json()["id"] c2 = api.post("/campaigns/create", headers=H(api), json=_cIn(f, name="D2")).json()["id"] r = api.post(f"/campaigns/{c1}/delete", headers=H(api)) assert r.status_code == 200 and r.json()["deleted"] == c1 # running campaign cannot be deleted from app.models import Campaign c = db.get(Campaign, c2) c.status = "running" db.commit() r2 = api.post(f"/campaigns/{c2}/delete", headers=H(api)) assert r2.status_code == 409 # clear-all skips running, deletes the rest r3 = api.post("/campaigns/clear-all", headers=H(api)) assert r3.status_code == 200 d = r3.json() assert d["deleted"] >= 1 and d["skipped"] >= 1 assert api.get("/campaigns/list").json()["total"] == 0 def test_list_filters(self, api, db):