Coverage for src/lexigram/notification/cli/doctor.py: 0%
12 statements
« prev ^ index » next coverage.py v7.15.4, created at 2026-08-26 02:26 +0800
« prev ^ index » next coverage.py v7.15.4, created at 2026-08-26 02:26 +0800
1"""CLI doctor checks for lexigram-notification."""
3from __future__ import annotations
5import os
8def check_smtp_config() -> dict[str, object]:
9 """Check SMTP configuration is present.
11 Looks for ``SMTP_HOST`` environment variable.
13 Returns:
14 A DoctorCheckResult-compatible dict.
15 """
16 if os.environ.get("SMTP_HOST"):
17 return {"status": "ok", "message": "SMTP_HOST is configured"}
18 return {
19 "status": "warning",
20 "message": "SMTP_HOST is not set. Email notifications may not work.",
21 }
24def check_push_credentials() -> dict[str, object]:
25 """Check push notification credentials are configured.
27 Looks for ``FCM_SERVER_KEY`` or ``APNS_KEY_PATH`` environment variables.
29 Returns:
30 A DoctorCheckResult-compatible dict.
31 """
32 if os.environ.get("FCM_SERVER_KEY"):
33 return {"status": "ok", "message": "FCM_SERVER_KEY is configured"}
34 if os.environ.get("APNS_KEY_PATH"):
35 return {"status": "ok", "message": "APNS_KEY_PATH is configured"}
36 return {
37 "status": "warning",
38 "message": "No push credentials found. Set FCM_SERVER_KEY or APNS_KEY_PATH.",
39 }