mirror of
https://github.com/Skyvern-AI/skyvern.git
synced 2026-04-28 11:40:32 +00:00
58 lines
2 KiB
Python
58 lines
2 KiB
Python
"""Test that BrowserSessionsRepository.update_persistent_browser_session() accepts started_at."""
|
|
|
|
from datetime import datetime, timezone
|
|
from unittest.mock import MagicMock, patch
|
|
|
|
import pytest
|
|
|
|
from skyvern.forge.sdk.db.repositories.browser_sessions import BrowserSessionsRepository
|
|
from tests.unit.conftest import MockAsyncSessionCtx, make_mock_session
|
|
|
|
|
|
def _make_browser_repo(mock_pbs: MagicMock) -> BrowserSessionsRepository:
|
|
mock_session = make_mock_session(mock_pbs)
|
|
return BrowserSessionsRepository(session_factory=lambda: MockAsyncSessionCtx(mock_session))
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_update_persistent_browser_session_accepts_started_at() -> None:
|
|
"""update_persistent_browser_session() must accept started_at without raising TypeError."""
|
|
mock_pbs = MagicMock()
|
|
mock_pbs.status = "running"
|
|
mock_pbs.started_at = None
|
|
repo = _make_browser_repo(mock_pbs)
|
|
|
|
now = datetime.now(timezone.utc)
|
|
with patch(
|
|
"skyvern.forge.sdk.schemas.persistent_browser_sessions.PersistentBrowserSession.model_validate",
|
|
return_value=MagicMock(),
|
|
):
|
|
await repo.update_persistent_browser_session(
|
|
"pbs_123",
|
|
organization_id="org_123",
|
|
started_at=now,
|
|
)
|
|
|
|
assert mock_pbs.started_at == now
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_update_persistent_browser_session_without_started_at() -> None:
|
|
"""When started_at is not passed, the field should not be touched."""
|
|
mock_pbs = MagicMock()
|
|
mock_pbs.status = "created"
|
|
original_started_at = datetime(2026, 1, 1, tzinfo=timezone.utc)
|
|
mock_pbs.started_at = original_started_at
|
|
repo = _make_browser_repo(mock_pbs)
|
|
|
|
with patch(
|
|
"skyvern.forge.sdk.schemas.persistent_browser_sessions.PersistentBrowserSession.model_validate",
|
|
return_value=MagicMock(),
|
|
):
|
|
await repo.update_persistent_browser_session(
|
|
"pbs_123",
|
|
organization_id="org_123",
|
|
status="running",
|
|
)
|
|
|
|
assert mock_pbs.started_at == original_started_at
|