Files
ai-daily-report/tests/test_config_loading.py
2026-06-08 12:05:45 +08:00

34 lines
1.1 KiB
Python

import unittest
from pathlib import Path
from ai_daily_report.config import load_source_configs
from ai_daily_report.sources.registry import get_source_fetcher
ROOT = Path(__file__).resolve().parents[1]
class ConfigLoadingTests(unittest.TestCase):
def test_load_source_configs_from_json(self):
configs = load_source_configs(ROOT / "config" / "sources.json")
self.assertGreaterEqual(len(configs), 5)
self.assertEqual(configs[0].name, "AI HOT")
self.assertEqual(configs[0].type, "aihot")
def test_rss_configs_can_set_max_item_age_days(self):
configs = load_source_configs(ROOT / "config" / "sources.json")
by_name = {config.name: config for config in configs}
self.assertEqual(by_name["InfoQ AI"].max_item_age_days, 3)
def test_all_configured_source_types_are_registered(self):
configs = load_source_configs(ROOT / "config" / "sources.json")
for config in configs:
self.assertTrue(callable(get_source_fetcher(config.type)))
if __name__ == "__main__":
unittest.main()