"""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