| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- from conftest import login_static
- def test_default_when_no_override(app_client):
- login_static(app_client)
- data = app_client.get("/api/config").get_json()
- # example default_limit is 200
- assert data["prefs"]["default_limit"] == 200
- def test_override_persists(app_client):
- csrf = login_static(app_client)
- app_client.put("/api/prefs", json={"default_limit": 42}, headers={"X-CSRF-Token": csrf})
- data = app_client.get("/api/config").get_json()
- assert data["prefs"]["default_limit"] == 42
- def test_invalid_override_rejected(app_client):
- csrf = login_static(app_client)
- r = app_client.put("/api/prefs", json={"default_limit": 99999}, headers={"X-CSRF-Token": csrf})
- assert r.status_code == 400
- def test_deleted_pinned_folder_falls_back(app_client):
- csrf = login_static(app_client)
- # Pin a folder that exists, then remove it from config; effective value must fall back.
- app_client.put("/api/prefs", json={"default_folder": "Deleted"}, headers={"X-CSRF-Token": csrf})
- store = app_client._store
- store.apply({"quarantine": {"folders": ["Quarantine", "Attachment Defense", "Debugging - Josef"],
- "deleted_folder": "Quarantine"}}, actor="t")
- data = app_client.get("/api/config").get_json()
- # "Deleted" no longer in folders -> falls back to admin default, not an error
- assert data["prefs"]["default_folder"] != "Deleted"
- def test_per_user_isolation(app_client):
- from prefs import PrefStore
- prefs: PrefStore = app_client.application.config["PREFS"]
- snap = app_client._store.snapshot()
- prefs.set_many("alice@x.com", {"default_limit": 10}, snap)
- prefs.set_many("bob@x.com", {"default_limit": 20}, snap)
- assert prefs.effective("alice@x.com", snap)["default_limit"] == 10
- assert prefs.effective("bob@x.com", snap)["default_limit"] == 20
- def test_clear_resets_to_default(app_client):
- csrf = login_static(app_client)
- app_client.put("/api/prefs", json={"default_limit": 15}, headers={"X-CSRF-Token": csrf})
- app_client.delete("/api/prefs", json={}, headers={"X-CSRF-Token": csrf})
- data = app_client.get("/api/config").get_json()
- assert data["prefs"]["default_limit"] == 200
|