summaryrefslogtreecommitdiff
path: root/services/news-collector/tests/test_main.py
diff options
context:
space:
mode:
authorTheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com>2026-04-02 14:08:48 +0900
committerTheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com>2026-04-02 14:08:48 +0900
commitde5100240a070bfb16ef19a40095903afbf38d3c (patch)
treec004263cffc4fe193df99e680ab8b66691b7c0bb /services/news-collector/tests/test_main.py
parent9bf5aef24d83065c093d8cf4e32d789efd07777b (diff)
feat: implement news-collector main scheduler with all collectors
Diffstat (limited to 'services/news-collector/tests/test_main.py')
-rw-r--r--services/news-collector/tests/test_main.py37
1 files changed, 37 insertions, 0 deletions
diff --git a/services/news-collector/tests/test_main.py b/services/news-collector/tests/test_main.py
new file mode 100644
index 0000000..3ebb094
--- /dev/null
+++ b/services/news-collector/tests/test_main.py
@@ -0,0 +1,37 @@
+"""Tests for news collector scheduler."""
+import pytest
+from unittest.mock import AsyncMock, MagicMock
+from datetime import datetime, timezone
+from shared.models import NewsCategory, NewsItem
+from news_collector.main import run_collector_once
+
+
+async def test_run_collector_once_stores_and_publishes():
+ mock_item = NewsItem(
+ source="test", headline="Test news",
+ published_at=datetime(2026, 4, 2, tzinfo=timezone.utc),
+ sentiment=0.5, category=NewsCategory.MACRO,
+ )
+ mock_collector = MagicMock()
+ mock_collector.name = "test"
+ mock_collector.collect = AsyncMock(return_value=[mock_item])
+ mock_db = MagicMock()
+ mock_db.insert_news_item = AsyncMock()
+ mock_broker = MagicMock()
+ mock_broker.publish = AsyncMock()
+
+ count = await run_collector_once(mock_collector, mock_db, mock_broker)
+ assert count == 1
+ mock_db.insert_news_item.assert_called_once_with(mock_item)
+ mock_broker.publish.assert_called_once()
+
+
+async def test_run_collector_once_handles_empty():
+ mock_collector = MagicMock()
+ mock_collector.name = "test"
+ mock_collector.collect = AsyncMock(return_value=[])
+ mock_db = MagicMock()
+ mock_broker = MagicMock()
+
+ count = await run_collector_once(mock_collector, mock_db, mock_broker)
+ assert count == 0