Skip to content

Commit 5d11e0e

Browse files
authored
chore: remove IntegrationList (#186)
1 parent 3dce75f commit 5d11e0e

6 files changed

Lines changed: 29 additions & 48 deletions

File tree

src/deepset_mcp/api/integrations/models.py

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -42,17 +42,3 @@ class Integration(BaseModel):
4242
"The integration provider type (e.g., OpenAI, Azure, etc.)"
4343
provider_domain: str
4444
"Domain or endpoint URL for the integration provider"
45-
46-
47-
class IntegrationList(BaseModel):
48-
"""Model representing a list of integrations."""
49-
50-
integrations: list[Integration]
51-
"List of available integrations"
52-
53-
def __len__(self) -> int:
54-
"""Return the length of the list.
55-
56-
:returns: Number of integrations.
57-
"""
58-
return len(self.integrations)

src/deepset_mcp/api/integrations/protocols.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
from typing import TYPE_CHECKING, Protocol
88

9-
from deepset_mcp.api.integrations.models import Integration, IntegrationList, IntegrationProvider
9+
from deepset_mcp.api.integrations.models import Integration, IntegrationProvider
1010

1111
if TYPE_CHECKING:
1212
pass
@@ -15,10 +15,10 @@
1515
class IntegrationResourceProtocol(Protocol):
1616
"""Protocol for integration resource operations."""
1717

18-
async def list(self) -> IntegrationList:
18+
async def list(self) -> list[Integration]:
1919
"""Retrieve all integrations.
2020
21-
:returns: IntegrationList containing all available integrations.
21+
:returns: list containing all available integrations.
2222
"""
2323
...
2424

src/deepset_mcp/api/integrations/resource.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import logging
88
from typing import TYPE_CHECKING
99

10-
from deepset_mcp.api.integrations.models import Integration, IntegrationList, IntegrationProvider
10+
from deepset_mcp.api.integrations.models import Integration, IntegrationProvider
1111
from deepset_mcp.api.integrations.protocols import IntegrationResourceProtocol
1212
from deepset_mcp.api.transport import raise_for_status
1313

@@ -27,10 +27,10 @@ def __init__(self, client: "AsyncClientProtocol") -> None:
2727
"""
2828
self._client = client
2929

30-
async def list(self) -> IntegrationList:
30+
async def list(self) -> list[Integration]:
3131
"""Retrieve all integrations.
3232
33-
:returns: IntegrationList containing all available integrations.
33+
:returns: list containing all available integrations.
3434
"""
3535
resp = await self._client.request(
3636
endpoint="v1/model_registry_tokens",
@@ -41,9 +41,9 @@ async def list(self) -> IntegrationList:
4141

4242
if resp.json is not None:
4343
integrations = [Integration.model_validate(item) for item in resp.json]
44-
return IntegrationList(integrations=integrations)
44+
return integrations
4545
else:
46-
return IntegrationList(integrations=[])
46+
return []
4747

4848
async def get(self, provider: IntegrationProvider) -> Integration:
4949
"""Retrieve a specific integration by provider.

src/deepset_mcp/tools/secrets.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ async def list_secrets(
5656
# This optimizes performance by skipping the integrations call for subsequent pages
5757
if after is None:
5858
integrations_list = await client.integrations().list()
59-
for integration in integrations_list.integrations:
59+
for integration in integrations_list:
6060
env_vars = TOKEN_DOMAIN_MAPPING.get(integration.provider_domain, [])
6161
for env_var in env_vars:
6262
env_secrets.append(
@@ -98,7 +98,7 @@ async def get_secret(*, client: AsyncClientProtocol, secret_id: str) -> Environm
9898
except ResourceNotFoundError:
9999
try:
100100
integrations_list = await client.integrations().list()
101-
for integration in integrations_list.integrations:
101+
for integration in integrations_list:
102102
if str(integration.model_registry_token_id) == secret_id:
103103
env_vars = TOKEN_DOMAIN_MAPPING.get(integration.provider_domain, [])
104104
if env_vars:

test/unit/api/integrations/test_integration_resource.py

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import pytest
1010

1111
from deepset_mcp.api.exceptions import DeepsetAPIError, ResourceNotFoundError
12-
from deepset_mcp.api.integrations.models import Integration, IntegrationList, IntegrationProvider
12+
from deepset_mcp.api.integrations.models import Integration, IntegrationProvider
1313
from deepset_mcp.api.integrations.resource import IntegrationResource
1414
from deepset_mcp.api.transport import TransportResponse
1515
from test.unit.conftest import BaseFakeClient
@@ -50,18 +50,18 @@ async def test_list_integrations_success(self) -> None:
5050
result = await client.integrations().list()
5151

5252
# Assert
53-
assert isinstance(result, IntegrationList)
53+
assert isinstance(result, list)
5454
assert len(result) == 2
5555

56-
assert result.integrations[0].invalid is False
57-
assert result.integrations[0].model_registry_token_id == UUID("3fa85f64-5717-4562-b3fc-2c963f66afa6")
58-
assert result.integrations[0].provider == IntegrationProvider.AWS_BEDROCK
59-
assert result.integrations[0].provider_domain == "us-east-1"
56+
assert result[0].invalid is False
57+
assert result[0].model_registry_token_id == UUID("3fa85f64-5717-4562-b3fc-2c963f66afa6")
58+
assert result[0].provider == IntegrationProvider.AWS_BEDROCK
59+
assert result[0].provider_domain == "us-east-1"
6060

61-
assert result.integrations[1].invalid is True
62-
assert result.integrations[1].model_registry_token_id == UUID("4fa85f64-5717-4562-b3fc-2c963f66afa7")
63-
assert result.integrations[1].provider == IntegrationProvider.OPENAI
64-
assert result.integrations[1].provider_domain == "api.openai.com"
61+
assert result[1].invalid is True
62+
assert result[1].model_registry_token_id == UUID("4fa85f64-5717-4562-b3fc-2c963f66afa7")
63+
assert result[1].provider == IntegrationProvider.OPENAI
64+
assert result[1].provider_domain == "api.openai.com"
6565

6666
async def test_list_integrations_empty_response(self) -> None:
6767
"""Test listing integrations with empty response."""
@@ -72,9 +72,8 @@ async def test_list_integrations_empty_response(self) -> None:
7272
result = await client.integrations().list()
7373

7474
# Assert
75-
assert isinstance(result, IntegrationList)
75+
assert isinstance(result, list)
7676
assert len(result) == 0
77-
assert result.integrations == []
7877

7978
async def test_list_integrations_none_response(self) -> None:
8079
"""Test listing integrations with None response."""
@@ -87,9 +86,8 @@ async def test_list_integrations_none_response(self) -> None:
8786
result = await client.integrations().list()
8887

8988
# Assert
90-
assert isinstance(result, IntegrationList)
89+
assert isinstance(result, list)
9190
assert len(result) == 0
92-
assert result.integrations == []
9391

9492
async def test_list_integrations_api_error(self) -> None:
9593
"""Test listing integrations with API error."""

test/unit/tools/test_secrets.py

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import pytest
88

99
from deepset_mcp.api.exceptions import ResourceNotFoundError, UnexpectedAPIError
10-
from deepset_mcp.api.integrations.models import Integration, IntegrationList, IntegrationProvider
10+
from deepset_mcp.api.integrations.models import Integration, IntegrationProvider
1111
from deepset_mcp.api.integrations.protocols import IntegrationResourceProtocol
1212
from deepset_mcp.api.secrets.models import Secret
1313
from deepset_mcp.api.secrets.protocols import SecretResourceProtocol
@@ -63,7 +63,7 @@ async def delete(self, secret_id: str) -> NoContentResponse:
6363
class FakeIntegrationResource(IntegrationResourceProtocol):
6464
def __init__(
6565
self,
66-
list_response: IntegrationList | None = None,
66+
list_response: list[Integration] | None = None,
6767
get_response: Integration | None = None,
6868
list_exception: Exception | None = None,
6969
get_exception: Exception | None = None,
@@ -73,11 +73,11 @@ def __init__(
7373
self.list_exception = list_exception
7474
self.get_exception = get_exception
7575

76-
async def list(self) -> IntegrationList:
76+
async def list(self) -> list[Integration]:
7777
if self.list_exception:
7878
raise self.list_exception
7979
if self.list_response is None:
80-
return IntegrationList(integrations=[])
80+
return []
8181
return self.list_response
8282

8383
async def get(self, provider: IntegrationProvider) -> Integration:
@@ -112,15 +112,14 @@ async def test_list_secrets_and_integrations() -> None:
112112
secret_list = PaginatedResponse[Secret](data=secrets_data, has_more=False, total=1)
113113

114114
integration_id = uuid.uuid4()
115-
integrations_data = [
115+
integration_list = [
116116
Integration(
117117
invalid=False,
118118
model_registry_token_id=integration_id,
119119
provider=IntegrationProvider.OPENAI,
120120
provider_domain="api.openai.com",
121121
)
122122
]
123-
integration_list = IntegrationList(integrations=integrations_data)
124123

125124
client = FakeClient(
126125
secret_resource=FakeSecretResource(list_response=secret_list),
@@ -169,15 +168,14 @@ async def test_list_secrets_only() -> None:
169168
async def test_list_integrations_only() -> None:
170169
"""Test listing only integrations when no secrets exist."""
171170
integration_id = uuid.uuid4()
172-
integrations_data = [
171+
integration_list = [
173172
Integration(
174173
invalid=True,
175174
model_registry_token_id=integration_id,
176175
provider=IntegrationProvider.COHERE,
177176
provider_domain="api.cohere.ai",
178177
)
179178
]
180-
integration_list = IntegrationList(integrations=integrations_data)
181179
client = FakeClient(integration_resource=FakeIntegrationResource(list_response=integration_list))
182180

183181
result = await list_secrets(client=client)
@@ -238,15 +236,14 @@ async def test_get_secret_by_id_success() -> None:
238236
async def test_get_integration_by_id_success() -> None:
239237
"""Test successful retrieval of an integration by its ID."""
240238
integration_id = uuid.uuid4()
241-
integrations_data = [
239+
integration_list = [
242240
Integration(
243241
invalid=False,
244242
model_registry_token_id=integration_id,
245243
provider=IntegrationProvider.OPENAI,
246244
provider_domain="api.openai.com",
247245
)
248246
]
249-
integration_list = IntegrationList(integrations=integrations_data)
250247

251248
client = FakeClient(
252249
secret_resource=FakeSecretResource(get_exception=ResourceNotFoundError("Not found")),

0 commit comments

Comments
 (0)