1+ import pytest
2+ from unittest .mock import AsyncMock , MagicMock
3+ from src .checkpointer .obp_checkpoint_saver import OBPCheckpointSaver
4+
5+ @pytest .mark .anyio
6+ async def test_check_existing_setup_returns_true_when_entities_exist ():
7+ # Mock the OBPClient
8+ mock_client = MagicMock ()
9+ mock_response = MagicMock ()
10+ mock_response .json .return_value = {
11+ "dynamic_entities" : [
12+ {"OpeyCheckpoint" : {}},
13+ {"OpeyCheckpointWrite" : {}}
14+ ]
15+ }
16+ mock_client .get = AsyncMock (return_value = mock_response )
17+
18+ # Create saver and test
19+ saver = OBPCheckpointSaver (client = mock_client )
20+ result = await saver ._check_existing_setup ()
21+
22+ assert result is True
23+ mock_client .get .assert_called_once_with ("/obp/v6.0.0/management/system-dynamic-entities" )
24+
25+ @pytest .mark .anyio
26+ async def test_check_existing_setup_returns_false_when_entities_missing ():
27+ mock_client = MagicMock ()
28+ mock_response = MagicMock ()
29+ mock_response .json .return_value = {"dynamic_entities" : []}
30+ mock_client .get = AsyncMock (return_value = mock_response )
31+
32+ saver = OBPCheckpointSaver (client = mock_client )
33+ result = await saver ._check_existing_setup ()
34+
35+ assert result is False
36+
37+ @pytest .mark .anyio
38+ async def test_check_existing_setup_raises_on_api_error ():
39+ mock_client = MagicMock ()
40+ mock_client .get = AsyncMock (side_effect = Exception ("API Error" ))
41+
42+ saver = OBPCheckpointSaver (client = mock_client )
43+
44+ with pytest .raises (RuntimeError , match = "Error checking existing OBP setup" ):
45+ await saver ._check_existing_setup ()
0 commit comments