Optimization
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
"""Tests for QuickReplySessionService."""
|
||||
|
||||
from datetime import UTC, datetime, timedelta
|
||||
from unittest.mock import AsyncMock, Mock
|
||||
from uuid import uuid4
|
||||
|
||||
@@ -160,6 +161,39 @@ async def test_start_session_existing_user(service, mock_firestore, mock_redis,
|
||||
mock_content.get_quick_replies.assert_called_once_with("pagos")
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_start_session_updates_last_modified_on_existing(
|
||||
service, mock_firestore, mock_redis, mock_content
|
||||
):
|
||||
"""Test that last_modified is refreshed when updating pantalla_contexto.
|
||||
|
||||
Ensures quick reply context won't be incorrectly marked as stale
|
||||
when the session was idle before the user opened a quick reply screen.
|
||||
"""
|
||||
stale_time = datetime.now(UTC) - timedelta(minutes=20)
|
||||
test_session = ConversationSession.create(
|
||||
session_id="session-123",
|
||||
user_id="user_by_phone_5551234",
|
||||
telefono="555-1234",
|
||||
pantalla_contexto=None,
|
||||
)
|
||||
test_session.last_modified = stale_time
|
||||
|
||||
mock_redis.get_session.return_value = test_session
|
||||
mock_content.get_quick_replies.return_value = QuickReplyScreen(
|
||||
header="H", body=None, button=None, header_section=None, preguntas=[]
|
||||
)
|
||||
|
||||
await service.start_quick_reply_session(
|
||||
telefono="555-1234",
|
||||
_nombre="John",
|
||||
pantalla_contexto="pagos",
|
||||
)
|
||||
|
||||
saved_session = mock_redis.save_session.call_args[0][0]
|
||||
assert saved_session.last_modified > stale_time
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_start_session_invalid_phone(service):
|
||||
"""Test starting session with invalid phone number."""
|
||||
|
||||
Reference in New Issue
Block a user