diff options
Diffstat (limited to 'services/news-collector/tests/test_main.py')
| -rw-r--r-- | services/news-collector/tests/test_main.py | 41 |
1 files changed, 41 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..f85569a --- /dev/null +++ b/services/news-collector/tests/test_main.py @@ -0,0 +1,41 @@ +"""Tests for news collector scheduler.""" + +from datetime import UTC, datetime +from unittest.mock import AsyncMock, MagicMock + +from news_collector.main import run_collector_once + +from shared.models import NewsCategory, NewsItem + + +async def test_run_collector_once_stores_and_publishes(): + mock_item = NewsItem( + source="test", + headline="Test news", + published_at=datetime(2026, 4, 2, tzinfo=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 |
