feat(system): report health problems and keep recent log entries
This commit is contained in:
1 parent
b85bdcf5aa
commit
4441c5a24d
4 files changed
+110
-2
No files matched your search
@@ -1328,3 +1328,34 @@ def test_adopt_files_already_in_the_library(client):
|
||||
assert (root / "Tolkien/Der Hobbit/01.mp3").exists() # nothing moved
|
||||
assert client.get(f"/api/import/library/{lib}").json()["items"] == []
|
||||
assert [h["event"] for h in client.get("/api/history").json()] == ["adopted"] * 2
|
||||
|
||||
|
||||
def test_health_reports_problems_as_codes(client, monkeypatch):
|
||||
from wordarr import connect
|
||||
from wordarr.metadata import hardcover
|
||||
monkeypatch.setattr(hardcover, "TOKEN", "")
|
||||
monkeypatch.setattr(connect, "ABS_URL", "http://abs")
|
||||
monkeypatch.setattr(connect, "ABS_TOKEN", "")
|
||||
gone = client.tmp_path / "gone"
|
||||
client.post("/api/libraries", json={
|
||||
"name": "Weg", "media_type": "ebook", "root_path": str(gone)})
|
||||
client.post("/api/libraries", json={
|
||||
"name": "Da", "media_type": "ebook", "root_path": str(client.downloads)})
|
||||
|
||||
issues = client.get("/api/system/health").json()
|
||||
assert {(i["code"], i.get("name")) for i in issues} == {
|
||||
("library.missing", "Weg"), ("hardcover.token", None), ("abs.incomplete", None)}
|
||||
|
||||
monkeypatch.setattr(hardcover, "TOKEN", "x")
|
||||
monkeypatch.setattr(connect, "ABS_URL", "")
|
||||
gone.mkdir()
|
||||
assert client.get("/api/system/health").json() == []
|
||||
|
||||
|
||||
def test_recent_logs_newest_first(client):
|
||||
import logging
|
||||
logging.getLogger("wordarr.test").info("first")
|
||||
logging.getLogger("wordarr.test").warning("second")
|
||||
rows = client.get("/api/system/logs").json()
|
||||
assert [r["message"] for r in rows[:2]] == ["second", "first"]
|
||||
assert rows[0]["level"] == "WARNING"
|
||||
Reference in new issue
Block a user