64 lines
2.6 KiB
Python
64 lines
2.6 KiB
Python
from src.database.db_manager import DBManager
|
|
|
|
|
|
def test_runtime_config_round_trip(tmp_path):
|
|
db = DBManager(str(tmp_path / "polyweather.db"))
|
|
|
|
meta = db.set_runtime_config(
|
|
"POLYWEATHER_UPDATE_ANNOUNCEMENT_TITLE_ZH",
|
|
"观测采集更新",
|
|
updated_by="ops@example.com",
|
|
)
|
|
|
|
assert meta["key"] == "POLYWEATHER_UPDATE_ANNOUNCEMENT_TITLE_ZH"
|
|
assert meta["value"] == "观测采集更新"
|
|
assert meta["updated_by"] == "ops@example.com"
|
|
assert meta["source"] == "runtime_config"
|
|
assert db.get_runtime_config_value("POLYWEATHER_UPDATE_ANNOUNCEMENT_TITLE_ZH") == "观测采集更新"
|
|
|
|
|
|
def test_ops_update_announcement_uses_runtime_config_store(monkeypatch, tmp_path):
|
|
from web.services import ops_api
|
|
|
|
db = DBManager(str(tmp_path / "polyweather.db"))
|
|
monkeypatch.setattr(ops_api, "DBManager", lambda: db)
|
|
monkeypatch.setattr(ops_api, "_require_ops", lambda request: {"email": "admin@polyweather.top"})
|
|
|
|
result = ops_api.update_ops_config(
|
|
object(),
|
|
"POLYWEATHER_UPDATE_ANNOUNCEMENT_BODY_EN",
|
|
"Runway observation collector now writes patches independently.",
|
|
)
|
|
|
|
assert result["ok"] is True
|
|
assert result["source"] == "runtime_config"
|
|
assert result["updated_by"] == "admin@polyweather.top"
|
|
assert (
|
|
db.get_runtime_config_value("POLYWEATHER_UPDATE_ANNOUNCEMENT_BODY_EN")
|
|
== "Runway observation collector now writes patches independently."
|
|
)
|
|
|
|
|
|
def test_public_update_announcement_returns_enabled_bilingual_payload(monkeypatch, tmp_path):
|
|
from web.services import system_api
|
|
|
|
db = DBManager(str(tmp_path / "polyweather.db"))
|
|
monkeypatch.setattr(system_api, "DBManager", lambda: db)
|
|
db.set_runtime_config("POLYWEATHER_UPDATE_ANNOUNCEMENT_ENABLED", "true")
|
|
db.set_runtime_config("POLYWEATHER_UPDATE_ANNOUNCEMENT_TITLE_ZH", "数据更新公告")
|
|
db.set_runtime_config("POLYWEATHER_UPDATE_ANNOUNCEMENT_BODY_ZH", "AMSC 观测采集已独立运行。")
|
|
db.set_runtime_config("POLYWEATHER_UPDATE_ANNOUNCEMENT_TITLE_EN", "Data update")
|
|
db.set_runtime_config(
|
|
"POLYWEATHER_UPDATE_ANNOUNCEMENT_BODY_EN",
|
|
"The AMSC observation collector now runs independently.",
|
|
)
|
|
|
|
payload = system_api.get_public_update_announcement()
|
|
|
|
assert payload["enabled"] is True
|
|
assert payload["zh"]["title"] == "数据更新公告"
|
|
assert payload["zh"]["body"] == "AMSC 观测采集已独立运行。"
|
|
assert payload["en"]["title"] == "Data update"
|
|
assert payload["en"]["body"] == "The AMSC observation collector now runs independently."
|
|
assert payload["updated_at"]
|