@@ -43,21 +43,24 @@ def mock_server():
43
43
server .updated_at = "2023-01-01T00:00:00"
44
44
server .is_active = True
45
45
46
- # Set up associated items
46
+ # associated objects -------------------------------------------------
47
47
tool1 = MagicMock (spec = DbTool )
48
48
tool1 .id = 101
49
+ tool1 ._sa_instance_state = Mock () # <-- SQLAlchemy expects this attr
49
50
50
51
resource1 = MagicMock (spec = DbResource )
51
52
resource1 .id = 201
53
+ resource1 ._sa_instance_state = Mock ()
52
54
53
55
prompt1 = MagicMock (spec = DbPrompt )
54
56
prompt1 .id = 301
57
+ prompt1 ._sa_instance_state = Mock ()
55
58
56
59
server .tools = [tool1 ]
57
60
server .resources = [resource1 ]
58
61
server .prompts = [prompt1 ]
59
62
60
- # Set up metrics
63
+ # dummy metrics fields
61
64
server .metrics = []
62
65
server .execution_count = 0
63
66
server .successful_executions = 0
@@ -77,15 +80,16 @@ def mock_tool():
77
80
tool = MagicMock (spec = DbTool )
78
81
tool .id = 101
79
82
tool .name = "test_tool"
83
+ tool ._sa_instance_state = Mock ()
80
84
return tool
81
85
82
-
83
86
@pytest .fixture
84
87
def mock_resource ():
85
88
"""Create a mock resource."""
86
89
resource = MagicMock (spec = DbResource )
87
90
resource .id = 201
88
91
resource .name = "test_resource"
92
+ resource ._sa_instance_state = Mock ()
89
93
return resource
90
94
91
95
@@ -95,6 +99,7 @@ def mock_prompt():
95
99
prompt = MagicMock (spec = DbPrompt )
96
100
prompt .id = 301
97
101
prompt .name = "test_prompt"
102
+ prompt ._sa_instance_state = Mock ()
98
103
return prompt
99
104
100
105
@@ -219,10 +224,9 @@ async def test_register_server_invalid_associated_tool(self, server_service, tes
219
224
async def test_list_servers (self , server_service , mock_server , test_db ):
220
225
"""Test listing servers."""
221
226
# Mock DB to return a list of servers
222
- mock_scalar_result = MagicMock ()
223
- mock_scalar_result .all .return_value = [mock_server ]
224
- mock_execute = Mock (return_value = mock_scalar_result )
225
- test_db .execute = mock_execute
227
+ exec_result = MagicMock ()
228
+ exec_result .scalars .return_value .all .return_value = [mock_server ]
229
+ test_db .execute = Mock (return_value = exec_result )
226
230
227
231
# Set up conversion
228
232
server_read = ServerRead (
@@ -260,6 +264,8 @@ async def test_list_servers(self, server_service, mock_server, test_db):
260
264
assert result [0 ] == server_read
261
265
server_service ._convert_server_to_read .assert_called_once_with (mock_server )
262
266
267
+
268
+
263
269
@pytest .mark .asyncio
264
270
async def test_get_server (self , server_service , mock_server , test_db ):
265
271
"""Test getting a server by ID."""
0 commit comments