From cd7f416da1e2f437aae1231114742f25ef2b90ba Mon Sep 17 00:00:00 2001 From: iscai-msft Date: Thu, 27 Aug 2020 17:15:13 -0400 Subject: [PATCH 1/2] add tests for error response if pii entities endpoint called for 3.0 client --- .../tests/test_recognize_pii_entities.py | 11 ++++++++++- .../tests/test_recognize_pii_entities_async.py | 9 +++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/test_recognize_pii_entities.py b/sdk/textanalytics/azure-ai-textanalytics/tests/test_recognize_pii_entities.py index ed046172df38..edc619f4f891 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/test_recognize_pii_entities.py +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/test_recognize_pii_entities.py @@ -15,7 +15,8 @@ from azure.ai.textanalytics import ( TextAnalyticsClient, TextDocumentInput, - VERSION + VERSION, + TextAnalyticsApiVersion, ) # pre-apply the client_cls positional argument so it needn't be explicitly passed below @@ -572,3 +573,11 @@ def callback(response): language="en", raw_response_hook=callback ) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer(client_kwargs={"api_version": TextAnalyticsApiVersion.V3_0}) + def test_recognize_pii_entities_v3(self, client): + with pytest.raises(NotImplementedError) as excinfo: + client.recognize_pii_entities(["this should fail"]) + + assert "'recognize_pii_entities' endpoint is only available for API version v3.1-preview.1 and up" in str(excinfo.value) \ No newline at end of file diff --git a/sdk/textanalytics/azure-ai-textanalytics/tests/test_recognize_pii_entities_async.py b/sdk/textanalytics/azure-ai-textanalytics/tests/test_recognize_pii_entities_async.py index 361ef60bd42c..ebdd50895233 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/tests/test_recognize_pii_entities_async.py +++ b/sdk/textanalytics/azure-ai-textanalytics/tests/test_recognize_pii_entities_async.py @@ -17,6 +17,7 @@ from azure.ai.textanalytics import ( TextDocumentInput, VERSION, + TextAnalyticsApiVersion, ) # pre-apply the client_cls positional argument so it needn't be explicitly passed below @@ -570,3 +571,11 @@ def callback(response): language="en", raw_response_hook=callback ) + + @GlobalTextAnalyticsAccountPreparer() + @TextAnalyticsClientPreparer(client_kwargs={"api_version": TextAnalyticsApiVersion.V3_0}) + async def test_recognize_pii_entities_v3(self, client): + with pytest.raises(NotImplementedError) as excinfo: + await client.recognize_pii_entities(["this should fail"]) + + assert "'recognize_pii_entities' endpoint is only available for API version v3.1-preview.1 and up" in str(excinfo.value) From 6aa9a4bca9bca765c82e2e8a11675228aa05aaac Mon Sep 17 00:00:00 2001 From: iscai-msft Date: Thu, 27 Aug 2020 17:15:22 -0400 Subject: [PATCH 2/2] fix code based off tests --- .../azure/ai/textanalytics/_text_analytics_client.py | 4 ++-- .../ai/textanalytics/aio/_text_analytics_client_async.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_text_analytics_client.py b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_text_analytics_client.py index 814a6531be01..2d9812cbaecb 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_text_analytics_client.py +++ b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/_text_analytics_client.py @@ -286,8 +286,8 @@ def recognize_pii_entities( # type: ignore cls=kwargs.pop("cls", pii_entities_result), **kwargs ) - except AttributeError as error: - if "'TextAnalyticsClient' object has no attribute 'entities_recognition_pii'" in str(error): + except NotImplementedError as error: + if "APIVersion v3.0 is not available" in str(error): raise NotImplementedError( "'recognize_pii_entities' endpoint is only available for API version v3.1-preview.1 and up" ) diff --git a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/aio/_text_analytics_client_async.py b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/aio/_text_analytics_client_async.py index 1e1450f669ce..f017efa79bac 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/aio/_text_analytics_client_async.py +++ b/sdk/textanalytics/azure-ai-textanalytics/azure/ai/textanalytics/aio/_text_analytics_client_async.py @@ -288,8 +288,8 @@ async def recognize_pii_entities( # type: ignore cls=kwargs.pop("cls", pii_entities_result), **kwargs ) - except AttributeError as error: - if "'TextAnalyticsClient' object has no attribute 'entities_recognition_pii'" in str(error): + except NotImplementedError as error: + if "APIVersion v3.0 is not available" in str(error): raise NotImplementedError( "'recognize_pii_entities' endpoint is only available for API version v3.1-preview.1 and up" )