Misc improvements
This commit is contained in:
@@ -6,10 +6,8 @@ import pytest
|
||||
|
||||
from capa_de_integracion.config import Settings
|
||||
from capa_de_integracion.models.notification import ExternalNotificationRequest
|
||||
from capa_de_integracion.services.dlp_service import DLPService
|
||||
from capa_de_integracion.services.firestore_service import FirestoreService
|
||||
from capa_de_integracion.services.notification_manager import NotificationManagerService
|
||||
from capa_de_integracion.services.redis_service import RedisService
|
||||
from capa_de_integracion.services import DLPService, NotificationManagerService
|
||||
from capa_de_integracion.services.storage import FirestoreService, RedisService
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
@@ -157,3 +155,33 @@ async def test_process_notification_generates_unique_id(service, mock_redis):
|
||||
notification2 = mock_redis.save_or_append_notification.call_args[0][0]
|
||||
|
||||
assert notification1.id_notificacion != notification2.id_notificacion
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_process_notification_firestore_exception_handling(
|
||||
service, mock_redis, mock_firestore
|
||||
):
|
||||
"""Test that Firestore exceptions are handled gracefully in background task."""
|
||||
import asyncio
|
||||
|
||||
# Make Firestore save fail
|
||||
mock_firestore.save_or_append_notification = AsyncMock(
|
||||
side_effect=Exception("Firestore connection error")
|
||||
)
|
||||
|
||||
request = ExternalNotificationRequest(
|
||||
telefono="555-1234",
|
||||
texto="Test notification",
|
||||
parametros_ocultos=None,
|
||||
)
|
||||
|
||||
await service.process_notification(request)
|
||||
|
||||
# Redis should succeed
|
||||
mock_redis.save_or_append_notification.assert_called_once()
|
||||
|
||||
# Give the background task time to execute
|
||||
await asyncio.sleep(0.1)
|
||||
|
||||
# Firestore should have been attempted (and failed)
|
||||
mock_firestore.save_or_append_notification.assert_called_once()
|
||||
|
||||
Reference in New Issue
Block a user