Skip to content

Commit f0a1688

Browse files
authored
SearchIndexClient.get_search_client inherits the API version (#36198)
* SearchIndexClient.get_search_client inherits the API version * update * add tests
1 parent c77fcda commit f0a1688

File tree

5 files changed

+37
-6
lines changed

5 files changed

+37
-6
lines changed

sdk/search/azure-search-documents/CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
### Features Added
66

7+
- `SearchIndexClient`.`get_search_client` inherits the API version.
8+
79
### Breaking Changes
810

911
### Bugs Fixed

sdk/search/azure-search-documents/azure/search/documents/indexes/_search_index_client.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,15 +50,15 @@ def __init__(self, endpoint: str, credential: Union[AzureKeyCredential, TokenCre
5050
self._api_version = kwargs.pop("api_version", DEFAULT_VERSION)
5151
self._endpoint = normalize_endpoint(endpoint)
5252
self._credential = credential
53-
audience = kwargs.pop("audience", None)
53+
self._audience = kwargs.pop("audience", None)
5454
if isinstance(credential, AzureKeyCredential):
5555
self._aad = False
5656
self._client = _SearchServiceClient(
5757
endpoint=endpoint, sdk_moniker=SDK_MONIKER, api_version=self._api_version, **kwargs
5858
)
5959
else:
6060
self._aad = True
61-
authentication_policy = get_authentication_policy(credential, audience=audience)
61+
authentication_policy = get_authentication_policy(credential, audience=self._audience)
6262
self._client = _SearchServiceClient(
6363
endpoint=endpoint,
6464
authentication_policy=authentication_policy,
@@ -90,7 +90,14 @@ def get_search_client(self, index_name: str, **kwargs: Any) -> SearchClient:
9090
:rtype: ~azure.search.documents.SearchClient
9191
9292
"""
93-
return SearchClient(self._endpoint, index_name, self._credential, **kwargs)
93+
return SearchClient(
94+
self._endpoint,
95+
index_name,
96+
self._credential,
97+
audience=self._audience,
98+
api_version=self._api_version,
99+
**kwargs
100+
)
94101

95102
@distributed_trace
96103
def list_indexes(self, *, select: Optional[List[str]] = None, **kwargs: Any) -> ItemPaged[SearchIndex]:

sdk/search/azure-search-documents/azure/search/documents/indexes/aio/_search_index_client.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,15 +51,15 @@ def __init__(self, endpoint: str, credential: Union[AzureKeyCredential, AsyncTok
5151
self._api_version = kwargs.pop("api_version", DEFAULT_VERSION)
5252
self._endpoint = normalize_endpoint(endpoint)
5353
self._credential = credential
54-
audience = kwargs.pop("audience", None)
54+
self._audience = kwargs.pop("audience", None)
5555
if isinstance(credential, AzureKeyCredential):
5656
self._aad = False
5757
self._client = _SearchServiceClient(
5858
endpoint=endpoint, sdk_moniker=SDK_MONIKER, api_version=self._api_version, **kwargs
5959
)
6060
else:
6161
self._aad = True
62-
authentication_policy = get_authentication_policy(credential, audience=audience, is_async=True)
62+
authentication_policy = get_authentication_policy(credential, audience=self._audience, is_async=True)
6363
self._client = _SearchServiceClient(
6464
endpoint=endpoint,
6565
authentication_policy=authentication_policy,
@@ -90,7 +90,14 @@ def get_search_client(self, index_name: str, **kwargs: Any) -> SearchClient:
9090
:return: SearchClient
9191
:rtype: ~azure.search.documents.aio.SearchClient
9292
"""
93-
return SearchClient(self._endpoint, index_name, self._credential, **kwargs)
93+
return SearchClient(
94+
self._endpoint,
95+
index_name,
96+
self._credential,
97+
audience=self._audience,
98+
api_version=self._api_version,
99+
**kwargs
100+
)
94101

95102
@distributed_trace
96103
def list_indexes(self, *, select: Optional[List[str]] = None, **kwargs) -> AsyncItemPaged[SearchIndex]:

sdk/search/azure-search-documents/tests/async_tests/test_search_index_client_async.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import pytest
88
from unittest import mock
99
from azure.core.credentials import AzureKeyCredential
10+
from azure.search.documents import ApiVersion
1011
from azure.search.documents.aio import SearchClient
1112
from azure.search.documents.indexes.aio import SearchIndexClient, SearchIndexerClient
1213
from devtools_testutils import trim_kwargs_from_test_function
@@ -55,6 +56,13 @@ def test_get_search_client(self):
5556
search_client = client.get_search_client("index")
5657
assert isinstance(search_client, SearchClient)
5758

59+
def test_get_search_client_inherit_api_version(self):
60+
credential = AzureKeyCredential(key="old_api_key")
61+
client = SearchIndexClient("endpoint", credential, api_version=ApiVersion.V2020_06_30)
62+
search_client = client.get_search_client("index")
63+
assert isinstance(search_client, SearchClient)
64+
assert search_client._api_version == ApiVersion.V2020_06_30
65+
5866
def test_index_endpoint_https(self):
5967
credential = AzureKeyCredential(key="old_api_key")
6068
client = SearchIndexClient("endpoint", credential)

sdk/search/azure-search-documents/tests/test_search_index_client.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,13 @@ def test_get_search_client(self):
4444
search_client = client.get_search_client("index")
4545
assert isinstance(search_client, SearchClient)
4646

47+
def test_get_search_client_inherit_api_version(self):
48+
credential = AzureKeyCredential(key="old_api_key")
49+
client = SearchIndexClient("endpoint", credential, api_version=ApiVersion.V2020_06_30)
50+
search_client = client.get_search_client("index")
51+
assert isinstance(search_client, SearchClient)
52+
assert search_client._api_version == ApiVersion.V2020_06_30
53+
4754
@mock.patch(
4855
"azure.search.documents.indexes._generated.operations._search_service_client_operations.SearchServiceClientOperationsMixin.get_service_statistics"
4956
)

0 commit comments

Comments
 (0)