Skip to content

Commit bef15a4

Browse files
committed
fix: 🐛 update test_main_tools.py
1 parent 8ba7d09 commit bef15a4

File tree

1 file changed

+29
-54
lines changed

1 file changed

+29
-54
lines changed

tests/test_main_tools.py

Lines changed: 29 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,6 @@ def mock_esa_client_none_in_main():
2929
yield mock_client_none
3030

3131

32-
# --- Tests for user_get_info ---
33-
34-
3532
def test_user_get_info_success(mock_esa_client_in_main):
3633
"""Test user_get_info MCP tool successfully returns user data."""
3734
# Arrange
@@ -63,9 +60,6 @@ def test_user_get_info_client_raises_exception(mock_esa_client_in_main):
6360
user_get_info()
6461

6562

66-
# --- Tests for posts_get_list ---
67-
68-
6963
def test_posts_get_list_success_no_params(mock_esa_client_in_main):
7064
"""Test posts_get_list MCP tool successfully returns data with no params."""
7165
# Arrange
@@ -114,9 +108,6 @@ def test_posts_get_list_client_raises_exception(mock_esa_client_in_main):
114108
posts_get_list(q="tool_test")
115109

116110

117-
# --- Tests for posts_get_detail ---
118-
119-
120111
def test_posts_get_detail_success(mock_esa_client_in_main):
121112
"""Test posts_get_detail MCP tool successfully returns data for a post."""
122113
# Arrange
@@ -150,9 +141,6 @@ def test_posts_get_detail_client_raises_exception(mock_esa_client_in_main):
150141
posts_get_detail(post_number=post_number)
151142

152143

153-
# --- Tests for posts_create ---
154-
155-
156144
def test_posts_create_success(mock_esa_client_in_main):
157145
"""Test posts_create successfully calls esa_client.create_post and returns data."""
158146
# Arrange
@@ -164,15 +152,15 @@ def test_posts_create_success(mock_esa_client_in_main):
164152
message = "Test commit message"
165153

166154
expected_payload_to_esa_client = {
167-
"post": {
168-
"name": name,
169-
"body_md": body_md,
170-
"tags": tags,
171-
"category": category,
172-
"wip": wip,
173-
"message": message,
174-
}
155+
"name": name,
156+
"body_md": body_md,
157+
"tags": tags,
158+
"category": category,
159+
"wip": wip,
160+
"message": message,
175161
}
162+
filtered_payload = {k: v for k, v in expected_payload_to_esa_client.items() if v is not None}
163+
176164
expected_response_from_tool = {
177165
"url": "https://example.esa.io/posts/123",
178166
"name": name,
@@ -191,27 +179,23 @@ def test_posts_create_success(mock_esa_client_in_main):
191179

192180
# Assert
193181
assert result == expected_response_from_tool
194-
mock_esa_client_in_main.create_post.assert_called_once_with(payload=expected_payload_to_esa_client)
182+
mock_esa_client_in_main.create_post.assert_called_once_with(payload=filtered_payload)
195183

196184

197185
def test_posts_create_success_minimal_params(mock_esa_client_in_main):
198186
"""Test posts_create with minimal parameters (name, body_md)."""
199187
# Arrange
200188
name = "Minimal Test Post"
201189
body_md = "Minimal body."
202-
# Default values for wip=True, tags=[], category=None, message=None
203190
expected_payload_to_esa_client = {
204-
"post": {
205-
"name": name,
206-
"body_md": body_md,
207-
"tags": [], # main.py sets tags or []
208-
"wip": True, # main.py default for wip is True
209-
# category and message will be None, and thus removed by the dict comprehension
210-
}
191+
"name": name,
192+
"body_md": body_md,
193+
"tags": [],
194+
"category": "",
195+
"wip": True,
196+
"message": "",
211197
}
212-
# Adjust for category and message being None and thus excluded from payload by the tool
213-
filtered_payload = {k: v for k, v in expected_payload_to_esa_client["post"].items() if v is not None}
214-
expected_payload_to_esa_client_after_filtering = {"post": filtered_payload}
198+
filtered_payload = {k: v for k, v in expected_payload_to_esa_client.items() if v is not None}
215199

216200
expected_response_from_tool = {
217201
"url": "https://example.esa.io/posts/124",
@@ -224,7 +208,7 @@ def test_posts_create_success_minimal_params(mock_esa_client_in_main):
224208

225209
# Assert
226210
assert result == expected_response_from_tool
227-
mock_esa_client_in_main.create_post.assert_called_once_with(payload=expected_payload_to_esa_client_after_filtering)
211+
mock_esa_client_in_main.create_post.assert_called_once_with(payload=filtered_payload)
228212

229213

230214
def test_posts_create_client_not_initialized(mock_esa_client_none_in_main):
@@ -244,9 +228,6 @@ def test_posts_create_client_raises_exception(mock_esa_client_in_main):
244228
posts_create(name="Test", body_md="Test")
245229

246230

247-
# --- Tests for posts_update ---
248-
249-
250231
def test_posts_update_success(mock_esa_client_in_main):
251232
"""Test posts_update successfully calls esa_client.update_post with all params."""
252233
# Arrange
@@ -259,15 +240,15 @@ def test_posts_update_success(mock_esa_client_in_main):
259240
message = "Update commit message"
260241

261242
expected_payload_to_esa_client = {
262-
"post": {
263-
"name": name,
264-
"body_md": body_md,
265-
"tags": tags,
266-
"category": category,
267-
"wip": wip,
268-
"message": message,
269-
}
243+
"name": name,
244+
"body_md": body_md,
245+
"tags": tags,
246+
"category": category,
247+
"wip": wip,
248+
"message": message,
270249
}
250+
filtered_payload = {k: v for k, v in expected_payload_to_esa_client.items() if v is not None}
251+
271252
expected_response_from_tool = {
272253
"url": f"https://example.esa.io/posts/{post_number}",
273254
"name": name,
@@ -288,7 +269,7 @@ def test_posts_update_success(mock_esa_client_in_main):
288269
# Assert
289270
assert result == expected_response_from_tool
290271
mock_esa_client_in_main.update_post.assert_called_once_with(
291-
post_number=post_number, payload=expected_payload_to_esa_client
272+
post_number=post_number, payload=filtered_payload
292273
)
293274

294275

@@ -297,13 +278,10 @@ def test_posts_update_success_partial_params(mock_esa_client_in_main):
297278
# Arrange
298279
post_number = 456
299280
name = "Partially Updated Title"
300-
# Only name is provided for update, other fields are None
301-
302281
expected_payload_to_esa_client = {
303-
"post": {
304-
"name": name,
305-
}
282+
"name": name,
306283
}
284+
filtered_payload = {k: v for k, v in expected_payload_to_esa_client.items() if v is not None}
307285
expected_response_from_tool = {
308286
"url": f"https://example.esa.io/posts/{post_number}",
309287
"name": name,
@@ -316,7 +294,7 @@ def test_posts_update_success_partial_params(mock_esa_client_in_main):
316294
# Assert
317295
assert result == expected_response_from_tool
318296
mock_esa_client_in_main.update_post.assert_called_once_with(
319-
post_number=post_number, payload=expected_payload_to_esa_client
297+
post_number=post_number, payload=filtered_payload
320298
)
321299

322300

@@ -353,9 +331,6 @@ def test_posts_update_client_raises_exception(mock_esa_client_in_main):
353331
posts_update(post_number=post_number, name="Test Update Fail")
354332

355333

356-
# --- Tests for posts_delete ---
357-
358-
359334
def test_posts_delete_success(mock_esa_client_in_main):
360335
"""Test posts_delete successfully calls esa_client.delete_post and returns empty dict."""
361336
# Arrange

0 commit comments

Comments
 (0)