mirror of
https://github.com/PR0M3TH3AN/SeedPass.git
synced 2025-09-08 23:38:49 +00:00
46 lines
1.8 KiB
Python
46 lines
1.8 KiB
Python
from test_api import client
|
|
from types import SimpleNamespace
|
|
import queue
|
|
import seedpass.api as api
|
|
|
|
|
|
def test_notifications_endpoint(client):
|
|
cl, token = client
|
|
api._pm.notifications = queue.Queue()
|
|
api._pm.notifications.put(SimpleNamespace(message="m1", level="INFO"))
|
|
api._pm.notifications.put(SimpleNamespace(message="m2", level="WARNING"))
|
|
res = cl.get("/api/v1/notifications", headers={"Authorization": f"Bearer {token}"})
|
|
assert res.status_code == 200
|
|
assert res.json() == [
|
|
{"level": "INFO", "message": "m1"},
|
|
{"level": "WARNING", "message": "m2"},
|
|
]
|
|
assert api._pm.notifications.empty()
|
|
|
|
|
|
def test_notifications_endpoint_clears_queue(client):
|
|
cl, token = client
|
|
api._pm.notifications = queue.Queue()
|
|
api._pm.notifications.put(SimpleNamespace(message="hi", level="INFO"))
|
|
res = cl.get("/api/v1/notifications", headers={"Authorization": f"Bearer {token}"})
|
|
assert res.status_code == 200
|
|
assert res.json() == [{"level": "INFO", "message": "hi"}]
|
|
assert api._pm.notifications.empty()
|
|
res = cl.get("/api/v1/notifications", headers={"Authorization": f"Bearer {token}"})
|
|
assert res.json() == []
|
|
|
|
|
|
def test_notifications_endpoint_does_not_clear_current(client):
|
|
cl, token = client
|
|
api._pm.notifications = queue.Queue()
|
|
msg = SimpleNamespace(message="keep", level="INFO")
|
|
api._pm.notifications.put(msg)
|
|
api._pm._current_notification = msg
|
|
api._pm.get_current_notification = lambda: api._pm._current_notification
|
|
|
|
res = cl.get("/api/v1/notifications", headers={"Authorization": f"Bearer {token}"})
|
|
assert res.status_code == 200
|
|
assert res.json() == [{"level": "INFO", "message": "keep"}]
|
|
assert api._pm.notifications.empty()
|
|
assert api._pm.get_current_notification() is msg
|