51 lines
1.3 KiB
Python
51 lines
1.3 KiB
Python
from __future__ import annotations
|
|
|
|
from datetime import datetime
|
|
|
|
from ariadne.db.storage import Storage
|
|
|
|
|
|
class DummyDB:
|
|
def __init__(self) -> None:
|
|
self.rows = []
|
|
|
|
def fetchall(self, query, params=None):
|
|
return self.rows
|
|
|
|
def fetchone(self, query, params=None):
|
|
return None
|
|
|
|
def execute(self, query, params=None):
|
|
return None
|
|
|
|
|
|
def test_task_statuses_and_complete() -> None:
|
|
db = DummyDB()
|
|
db.rows = [{"task": "one", "status": "ok"}, {"task": "two", "status": "error"}]
|
|
storage = Storage(db)
|
|
|
|
statuses = storage.task_statuses("req")
|
|
assert statuses == {"one": "ok", "two": "error"}
|
|
assert storage.tasks_complete("req", ["one"]) is True
|
|
assert storage.tasks_complete("req", ["one", "two"]) is False
|
|
|
|
|
|
def test_row_to_request_flags() -> None:
|
|
row = {
|
|
"request_code": "abc",
|
|
"username": "alice",
|
|
"contact_email": "a@example.com",
|
|
"status": "pending",
|
|
"email_verified_at": None,
|
|
"initial_password": None,
|
|
"initial_password_revealed_at": None,
|
|
"provision_attempted_at": None,
|
|
"approval_flags": ["demo", 1, "test"],
|
|
"approval_note": "note",
|
|
"denial_note": None,
|
|
}
|
|
|
|
req = Storage._row_to_request(row)
|
|
assert req.request_code == "abc"
|
|
assert req.approval_flags == ["demo", "1", "test"]
|