kaikai_test/tests/test_config.py
2026-05-07 16:31:56 +08:00

43 lines
1.4 KiB
Python

from __future__ import annotations
import tempfile
import unittest
from pathlib import Path
from unittest.mock import patch
from daily_report import config
class ConfigTest(unittest.TestCase):
def test_reads_dotenv_and_allows_environment_override(self) -> None:
with tempfile.TemporaryDirectory(prefix="daily-report-config-") as temp:
root = Path(temp)
(root / ".env").write_text(
"\n".join(
[
"PORT=9000",
"BASE_URL=http://example.test",
"FEISHU_WEBHOOK_URL=https://open.feishu.cn/webhook",
"FEISHU_APP_ID=cli_xxx",
"FEISHU_APP_SECRET=secret",
]
),
encoding="utf-8",
)
fake_file = root / "daily_report" / "config.py"
fake_file.parent.mkdir()
fake_file.write_text("", encoding="utf-8")
with patch.object(config, "__file__", str(fake_file)):
result = config.read_config({"PORT": "9001"})
self.assertEqual(result.port, 9001)
self.assertEqual(result.base_url, "http://example.test")
self.assertEqual(result.feishu_webhook_url, "https://open.feishu.cn/webhook")
self.assertEqual(result.feishu_app_id, "cli_xxx")
self.assertEqual(result.feishu_app_secret, "secret")
if __name__ == "__main__":
unittest.main()