34 lines
1.1 KiB
Python
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()
|