Skip to content

Commit 6c61ec1

Browse files
committed
test
Signed-off-by: RAKHI DUTTA <[email protected]>
1 parent b648f81 commit 6c61ec1

File tree

1 file changed

+93
-0
lines changed

1 file changed

+93
-0
lines changed

tests/unit/mcpgateway/test_main.py

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -589,6 +589,43 @@ def test_subscribe_resource_events(self, mock_subscribe, test_client, auth_heade
589589
# Prompt Management Tests #
590590
# ----------------------------------------------------- #
591591
class TestPromptEndpoints:
592+
@patch("mcpgateway.main.prompt_service.get_prompt")
593+
def test_get_prompt_no_args(self, mock_get, test_client, auth_headers):
594+
"""Test getting a prompt without arguments."""
595+
mock_get.return_value = {"name": "test", "template": "Hello"}
596+
response = test_client.get("/prompts/test", headers=auth_headers)
597+
assert response.status_code == 200
598+
mock_get.assert_called_once_with(ANY, "test", {})
599+
600+
@patch("mcpgateway.main.prompt_service.update_prompt")
601+
def test_update_prompt_endpoint(self, mock_update, test_client, auth_headers):
602+
"""Test updating an existing prompt."""
603+
updated = {**MOCK_PROMPT_READ, "description": "Updated description"}
604+
mock_update.return_value = PromptRead(**updated)
605+
req = {"description": "Updated description"}
606+
response = test_client.put("/prompts/test_prompt", json=req, headers=auth_headers)
607+
assert response.status_code == 200
608+
mock_update.assert_called_once()
609+
610+
@patch("mcpgateway.main.prompt_service.delete_prompt")
611+
def test_delete_prompt_endpoint(self, mock_delete, test_client, auth_headers):
612+
"""Test deleting a prompt."""
613+
mock_delete.return_value = None
614+
response = test_client.delete("/prompts/test_prompt", headers=auth_headers)
615+
assert response.status_code == 200
616+
assert response.json()["status"] == "success"
617+
mock_delete.assert_called_once()
618+
619+
@patch("mcpgateway.main.prompt_service.toggle_prompt_status")
620+
def test_toggle_prompt_status(self, mock_toggle, test_client, auth_headers):
621+
"""Test toggling prompt active/inactive status."""
622+
mock_prompt = MagicMock()
623+
mock_prompt.model_dump.return_value = {"id": 1, "is_active": False}
624+
mock_toggle.return_value = mock_prompt
625+
response = test_client.post("/prompts/1/toggle?activate=false", headers=auth_headers)
626+
assert response.status_code == 200
627+
assert response.json()["status"] == "success"
628+
mock_toggle.assert_called_once()
592629
"""Tests for prompt template management: creation, rendering, arguments, etc."""
593630

594631
@patch("mcpgateway.main.prompt_service.list_prompts")
@@ -670,6 +707,62 @@ def test_toggle_prompt_status(self, mock_toggle, test_client, auth_headers):
670707
# Gateway Federation Tests #
671708
# ----------------------------------------------------- #
672709
class TestGatewayEndpoints:
710+
@patch("mcpgateway.main.gateway_service.list_gateways")
711+
def test_list_gateways_endpoint(self, mock_list, test_client, auth_headers):
712+
"""Test listing all registered gateways."""
713+
mock_list.return_value = [MOCK_GATEWAY_READ]
714+
response = test_client.get("/gateways/", headers=auth_headers)
715+
assert response.status_code == 200
716+
data = response.json()
717+
assert len(data) == 1
718+
mock_list.assert_called_once()
719+
720+
@patch("mcpgateway.main.gateway_service.register_gateway")
721+
def test_create_gateway_endpoint(self, mock_create, test_client, auth_headers):
722+
"""Test registering a new gateway."""
723+
mock_create.return_value = MOCK_GATEWAY_READ
724+
req = {"name": "test_gateway", "url": "http://example.com"}
725+
response = test_client.post("/gateways/", json=req, headers=auth_headers)
726+
assert response.status_code == 200
727+
mock_create.assert_called_once()
728+
729+
@patch("mcpgateway.main.gateway_service.get_gateway")
730+
def test_get_gateway_endpoint(self, mock_get, test_client, auth_headers):
731+
"""Test retrieving a specific gateway."""
732+
mock_get.return_value = MOCK_GATEWAY_READ
733+
response = test_client.get("/gateways/1", headers=auth_headers)
734+
assert response.status_code == 200
735+
assert response.json()["name"] == "test_gateway"
736+
mock_get.assert_called_once()
737+
738+
@patch("mcpgateway.main.gateway_service.update_gateway")
739+
def test_update_gateway_endpoint(self, mock_update, test_client, auth_headers):
740+
"""Test updating an existing gateway."""
741+
mock_update.return_value = MOCK_GATEWAY_READ
742+
req = {"description": "Updated description"}
743+
response = test_client.put("/gateways/1", json=req, headers=auth_headers)
744+
assert response.status_code == 200
745+
mock_update.assert_called_once()
746+
747+
@patch("mcpgateway.main.gateway_service.delete_gateway")
748+
def test_delete_gateway_endpoint(self, mock_delete, test_client, auth_headers):
749+
"""Test deleting a gateway."""
750+
mock_delete.return_value = None
751+
response = test_client.delete("/gateways/1", headers=auth_headers)
752+
assert response.status_code == 200
753+
assert response.json()["status"] == "success"
754+
mock_delete.assert_called_once()
755+
756+
@patch("mcpgateway.main.gateway_service.toggle_gateway_status")
757+
def test_toggle_gateway_status(self, mock_toggle, test_client, auth_headers):
758+
"""Test toggling gateway active/inactive status."""
759+
mock_gateway = MagicMock()
760+
mock_gateway.model_dump.return_value = {"id": "1", "is_active": False}
761+
mock_toggle.return_value = mock_gateway
762+
response = test_client.post("/gateways/1/toggle?activate=false", headers=auth_headers)
763+
assert response.status_code == 200
764+
assert response.json()["status"] == "success"
765+
mock_toggle.assert_called_once()
673766
"""Tests for gateway federation: registration, discovery, forwarding, etc."""
674767

675768
@patch("mcpgateway.main.gateway_service.list_gateways")

0 commit comments

Comments
 (0)