diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/conftest.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/conftest.py index c124f8c845a30..479956d2d7bfa 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/conftest.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/conftest.py @@ -8,16 +8,7 @@ import sys -# fixture needs to be visible from conftest -from testcase import form_recognizer_account - # Ignore async tests for Python < 3.5 collect_ignore_glob = [] if sys.version_info < (3, 5): collect_ignore_glob.append("*_async.py") - -def pytest_configure(config): - # register an additional marker - config.addinivalue_line( - "usefixtures", "form_recognizer_account" - ) \ No newline at end of file diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/preparers.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/preparers.py new file mode 100644 index 0000000000000..a7b53c4043d81 --- /dev/null +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/preparers.py @@ -0,0 +1,60 @@ + +# coding: utf-8 +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +import os +import functools +from devtools_testutils import PowerShellPreparer, AzureMgmtPreparer +from azure.core.credentials import AzureKeyCredential + +ENABLE_LOGGER = os.getenv('ENABLE_LOGGER', "False") +REGION = os.getenv('REGION', None) + + +FormRecognizerPreparer = functools.partial( + PowerShellPreparer, + 'formrecognizer', + formrecognizer_test_endpoint="https://region.api.cognitive.microsoft.com/", + formrecognizer_test_api_key="fakeZmFrZV9hY29jdW50X2tleQ==", + formrecognizer_storage_container_sas_url="container_sas_url", + formrecognizer_testing_data_container_sas_url="container_sas_url", + formrecognizer_multipage_storage_container_sas_url="container_sas_url", + formrecognizer_multipage_storage_container_sas_url_2="container_sas_url", + formrecognizer_selection_mark_storage_container_sas_url="container_sas_url", + formrecognizer_resource_id="/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgname/providers/Microsoft.CognitiveServices/accounts/frname", + formrecognizer_region="region" +) + + +class GlobalClientPreparer(AzureMgmtPreparer): + def __init__(self, client_cls, client_kwargs={}, **kwargs): + super(GlobalClientPreparer, self).__init__( + name_prefix='', + random_name_length=42 + ) + self.client_kwargs = client_kwargs + self.client_cls = client_cls + + def create_resource(self, name, **kwargs): + if self.is_live: + form_recognizer_account = os.environ["FORMRECOGNIZER_TEST_ENDPOINT"] + form_recognizer_account_key = os.environ["FORMRECOGNIZER_TEST_API_KEY"] + polling_interval = 5 + else: + form_recognizer_account = "https://region.api.cognitive.microsoft.com/" + form_recognizer_account_key = "fakeZmFrZV9hY29jdW50X2tleQ==" + polling_interval = 0 + + client = self.client_cls( + form_recognizer_account, + AzureKeyCredential(form_recognizer_account_key), + polling_interval=polling_interval, + logging_enable=True if ENABLE_LOGGER == "True" else False, + **self.client_kwargs + ) + kwargs.update({"client": client}) + return kwargs diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_business_card.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_business_card.py index e7e5a077e0d59..eeb19846286c7 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_business_card.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_business_card.py @@ -13,8 +13,9 @@ from azure.ai.formrecognizer._generated.models import AnalyzeOperationResult from azure.ai.formrecognizer._response_handlers import prepare_prebuilt_models from azure.ai.formrecognizer import FormRecognizerClient, FormContentType, FormRecognizerApiVersion -from testcase import FormRecognizerTest, GlobalFormRecognizerAccountPreparer -from testcase import GlobalClientPreparer as _GlobalClientPreparer +from testcase import FormRecognizerTest +from preparers import GlobalClientPreparer as _GlobalClientPreparer +from preparers import FormRecognizerPreparer GlobalClientPreparer = functools.partial(_GlobalClientPreparer, FormRecognizerClient) @@ -22,29 +23,29 @@ class TestBusinessCard(FormRecognizerTest): - @GlobalFormRecognizerAccountPreparer() - def test_business_card_bad_endpoint(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): + @FormRecognizerPreparer() + def test_business_card_bad_endpoint(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): with open(self.business_card_jpg, "rb") as fd: myfile = fd.read() with self.assertRaises(ServiceRequestError): - client = FormRecognizerClient("http://notreal.azure.com", AzureKeyCredential(form_recognizer_account_key)) + client = FormRecognizerClient("http://notreal.azure.com", AzureKeyCredential(formrecognizer_test_api_key)) poller = client.begin_recognize_business_cards(myfile) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer() - def test_authentication_successful_key(self, client): + @FormRecognizerPreparer() + def test_authentication_successful_key(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormRecognizerClient(formrecognizer_test_endpoint, AzureKeyCredential(formrecognizer_test_api_key)) with open(self.business_card_jpg, "rb") as fd: myfile = fd.read() poller = client.begin_recognize_business_cards(myfile) result = poller.result() - @GlobalFormRecognizerAccountPreparer() - def test_authentication_bad_key(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential("xxxx")) + @FormRecognizerPreparer() + def test_authentication_bad_key(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormRecognizerClient(formrecognizer_test_endpoint, AzureKeyCredential("xxxx")) with self.assertRaises(ClientAuthenticationError): poller = client.begin_recognize_business_cards(b"xx", content_type="image/jpeg") - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_passing_enum_content_type(self, client): with open(self.business_card_png, "rb") as fd: @@ -56,7 +57,7 @@ def test_passing_enum_content_type(self, client): result = poller.result() self.assertIsNotNone(result) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_damaged_file_passed_as_bytes(self, client): damaged_pdf = b"\x25\x50\x44\x46\x55\x55\x55" # still has correct bytes to be recognized as PDF @@ -65,7 +66,7 @@ def test_damaged_file_passed_as_bytes(self, client): damaged_pdf ) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_damaged_file_bytes_fails_autodetect_content_type(self, client): damaged_pdf = b"\x50\x44\x46\x55\x55\x55" # doesn't match any magic file numbers @@ -74,7 +75,7 @@ def test_damaged_file_bytes_fails_autodetect_content_type(self, client): damaged_pdf ) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_damaged_file_passed_as_bytes_io(self, client): damaged_pdf = BytesIO(b"\x25\x50\x44\x46\x55\x55\x55") # still has correct bytes to be recognized as PDF @@ -83,7 +84,7 @@ def test_damaged_file_passed_as_bytes_io(self, client): damaged_pdf ) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_damaged_file_bytes_io_fails_autodetect(self, client): damaged_pdf = BytesIO(b"\x50\x44\x46\x55\x55\x55") # doesn't match any magic file numbers @@ -92,7 +93,7 @@ def test_damaged_file_bytes_io_fails_autodetect(self, client): damaged_pdf ) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_blank_page(self, client): @@ -104,7 +105,7 @@ def test_blank_page(self, client): result = poller.result() self.assertIsNotNone(result) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_passing_bad_content_type_param_passed(self, client): with open(self.business_card_jpg, "rb") as fd: @@ -115,13 +116,13 @@ def test_passing_bad_content_type_param_passed(self, client): content_type="application/jpeg" ) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_passing_unsupported_url_content_type(self, client): with self.assertRaises(TypeError): poller = client.begin_recognize_business_cards("https://badurl.jpg", content_type="application/json") - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_auto_detect_unsupported_stream_content(self, client): @@ -133,7 +134,7 @@ def test_auto_detect_unsupported_stream_content(self, client): myfile ) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_business_card_stream_transform_png(self, client): responses = [] @@ -170,7 +171,7 @@ def callback(raw_response, _, headers): # Check page metadata self.assertFormPagesTransformCorrect(business_card.pages, read_results) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_business_card_stream_transform_jpg(self, client): responses = [] @@ -208,7 +209,7 @@ def callback(raw_response, _, headers): # Check page metadata self.assertFormPagesTransformCorrect(business_card.pages, read_results) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_business_card_stream_multipage_transform_pdf(self, client): responses = [] @@ -248,7 +249,7 @@ def callback(raw_response, _, headers): # Check page metadata self.assertFormPagesTransformCorrect(returned_model, read_results) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_business_card_jpg(self, client): @@ -294,7 +295,7 @@ def test_business_card_jpg(self, client): self.assertEqual(len(business_card.fields.get("CompanyNames").value), 1) self.assertEqual(business_card.fields.get("CompanyNames").value[0].value, "Contoso") - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_business_card_png(self, client): @@ -338,7 +339,7 @@ def test_business_card_png(self, client): self.assertEqual(len(business_card.fields.get("CompanyNames").value), 1) self.assertEqual(business_card.fields.get("CompanyNames").value[0].value, "Contoso") - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_business_card_multipage_pdf(self, client): @@ -401,7 +402,7 @@ def test_business_card_multipage_pdf(self, client): self.assertEqual(len(business_card.fields.get("CompanyNames").value), 1) self.assertEqual(business_card.fields.get("CompanyNames").value[0].value, "Contoso") - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_business_card_jpg_include_field_elements(self, client): with open(self.business_card_jpg, "rb") as fd: @@ -418,7 +419,7 @@ def test_business_card_jpg_include_field_elements(self, client): for f in field.value: self.assertFieldElementsHasValues(f.value_data.field_elements, business_card.page_range.first_page_number) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() @pytest.mark.live_test_only def test_business_card_continuation_token(self, client): @@ -433,7 +434,7 @@ def test_business_card_continuation_token(self, client): self.assertIsNotNone(result) initial_poller.wait() # necessary so azure-devtools doesn't throw assertion error - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer(client_kwargs={"api_version": FormRecognizerApiVersion.V2_0}) def test_business_card_v2(self, client): with open(self.business_card_jpg, "rb") as fd: @@ -442,7 +443,7 @@ def test_business_card_v2(self, client): client.begin_recognize_business_cards(business_card) assert "Method 'begin_recognize_business_cards' is only available for API version V2_1_PREVIEW and up" in str(e.value) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_business_card_locale_specified(self, client): with open(self.business_card_jpg, "rb") as fd: @@ -451,7 +452,7 @@ def test_business_card_locale_specified(self, client): assert 'en-IN' == poller._polling_method._initial_response.http_response.request.query['locale'] poller.wait() - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_business_card_locale_error(self, client): with open(self.business_card_jpg, "rb") as fd: diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_business_card_async.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_business_card_async.py index ecb85b55e64ce..e087fc2a864a6 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_business_card_async.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_business_card_async.py @@ -14,9 +14,9 @@ from azure.ai.formrecognizer._response_handlers import prepare_prebuilt_models from azure.ai.formrecognizer.aio import FormRecognizerClient from azure.ai.formrecognizer import FormContentType, FormField, FormRecognizerApiVersion -from testcase import GlobalFormRecognizerAccountPreparer +from preparers import FormRecognizerPreparer from asynctestcase import AsyncFormRecognizerTest -from testcase import GlobalClientPreparer as _GlobalClientPreparer +from preparers import GlobalClientPreparer as _GlobalClientPreparer GlobalClientPreparer = functools.partial(_GlobalClientPreparer, FormRecognizerClient) @@ -24,16 +24,16 @@ class TestBusinessCardAsync(AsyncFormRecognizerTest): - @GlobalFormRecognizerAccountPreparer() - async def test_business_card_bad_endpoint(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): + @FormRecognizerPreparer() + async def test_business_card_bad_endpoint(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): with open(self.business_card_jpg, "rb") as fd: myfile = fd.read() with self.assertRaises(ServiceRequestError): - client = FormRecognizerClient("http://notreal.azure.com", AzureKeyCredential(form_recognizer_account_key)) + client = FormRecognizerClient("http://notreal.azure.com", AzureKeyCredential(formrecognizer_test_api_key)) async with client: poller = await client.begin_recognize_business_cards(myfile) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_authentication_successful_key(self, client): with open(self.business_card_jpg, "rb") as fd: @@ -42,14 +42,14 @@ async def test_authentication_successful_key(self, client): poller = await client.begin_recognize_business_cards(myfile) result = await poller.result() - @GlobalFormRecognizerAccountPreparer() - async def test_authentication_bad_key(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential("xxxx")) + @FormRecognizerPreparer() + async def test_authentication_bad_key(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormRecognizerClient(formrecognizer_test_endpoint, AzureKeyCredential("xxxx")) with self.assertRaises(ClientAuthenticationError): async with client: poller = await client.begin_recognize_business_cards(b"xx", content_type="image/jpeg") - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_passing_enum_content_type(self, client): with open(self.business_card_png, "rb") as fd: @@ -62,7 +62,7 @@ async def test_passing_enum_content_type(self, client): result = await poller.result() self.assertIsNotNone(result) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_damaged_file_passed_as_bytes(self, client): damaged_pdf = b"\x25\x50\x44\x46\x55\x55\x55" # still has correct bytes to be recognized as PDF @@ -72,7 +72,7 @@ async def test_damaged_file_passed_as_bytes(self, client): damaged_pdf ) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_damaged_file_bytes_fails_autodetect_content_type(self, client): damaged_pdf = b"\x50\x44\x46\x55\x55\x55" # doesn't match any magic file numbers @@ -82,7 +82,7 @@ async def test_damaged_file_bytes_fails_autodetect_content_type(self, client): damaged_pdf ) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_damaged_file_passed_as_bytes_io(self, client): damaged_pdf = BytesIO(b"\x25\x50\x44\x46\x55\x55\x55") # still has correct bytes to be recognized as PDF @@ -92,7 +92,7 @@ async def test_damaged_file_passed_as_bytes_io(self, client): damaged_pdf ) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_damaged_file_bytes_io_fails_autodetect(self, client): damaged_pdf = BytesIO(b"\x50\x44\x46\x55\x55\x55") # doesn't match any magic file numbers @@ -102,7 +102,7 @@ async def test_damaged_file_bytes_io_fails_autodetect(self, client): damaged_pdf ) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_blank_page(self, client): @@ -115,7 +115,7 @@ async def test_blank_page(self, client): result = await poller.result() self.assertIsNotNone(result) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_passing_bad_content_type_param_passed(self, client): with open(self.business_card_jpg, "rb") as fd: @@ -127,14 +127,14 @@ async def test_passing_bad_content_type_param_passed(self, client): content_type="application/jpeg" ) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_passing_unsupported_url_content_type(self, client): with self.assertRaises(TypeError): async with client: poller = await client.begin_recognize_business_cards("https://badurl.jpg", content_type="application/json") - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_auto_detect_unsupported_stream_content(self, client): @@ -147,7 +147,7 @@ async def test_auto_detect_unsupported_stream_content(self, client): myfile ) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_business_card_stream_transform_png(self, client): responses = [] @@ -184,7 +184,7 @@ def callback(raw_response, _, headers): # Check page metadata self.assertFormPagesTransformCorrect(business_card.pages, read_results) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_business_card_stream_transform_jpg(self, client): responses = [] @@ -223,7 +223,7 @@ def callback(raw_response, _, headers): # Check page metadata self.assertFormPagesTransformCorrect(business_card.pages, read_results) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_business_card_stream_multipage_transform_pdf(self, client): responses = [] @@ -264,7 +264,7 @@ def callback(raw_response, _, headers): # Check page metadata self.assertFormPagesTransformCorrect(returned_model, read_results) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_business_card_jpg(self, client): @@ -312,7 +312,7 @@ async def test_business_card_jpg(self, client): self.assertEqual(business_card.fields.get("CompanyNames").value[0].value, "Contoso") - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_business_card_png(self, client): with open(self.business_card_png, "rb") as fd: @@ -358,7 +358,7 @@ async def test_business_card_png(self, client): self.assertEqual(len(business_card.fields.get("CompanyNames").value), 1) self.assertEqual(business_card.fields.get("CompanyNames").value[0].value, "Contoso") - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_business_card_multipage_pdf(self, client): @@ -423,7 +423,7 @@ async def test_business_card_multipage_pdf(self, client): self.assertEqual(len(business_card.fields.get("CompanyNames").value), 1) self.assertEqual(business_card.fields.get("CompanyNames").value[0].value, "Contoso") - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_business_card_jpg_include_field_elements(self, client): with open(self.business_card_jpg, "rb") as fd: @@ -440,7 +440,7 @@ async def test_business_card_jpg_include_field_elements(self, client): for f in field.value: self.assertFieldElementsHasValues(f.value_data.field_elements, business_card.page_range.first_page_number) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() @pytest.mark.live_test_only async def test_business_card_continuation_token(self, client): @@ -456,7 +456,7 @@ async def test_business_card_continuation_token(self, client): self.assertIsNotNone(result) await initial_poller.wait() # necessary so azure-devtools doesn't throw assertion error - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer(client_kwargs={"api_version": FormRecognizerApiVersion.V2_0}) async def test_business_card_v2(self, client): with open(self.business_card_jpg, "rb") as fd: @@ -466,7 +466,7 @@ async def test_business_card_v2(self, client): await client.begin_recognize_business_cards(business_card) assert "Method 'begin_recognize_business_cards' is only available for API version V2_1_PREVIEW and up" in str(e.value) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_business_card_locale_specified(self, client): with open(self.business_card_jpg, "rb") as fd: @@ -476,7 +476,7 @@ async def test_business_card_locale_specified(self, client): assert 'en-IN' == poller._polling_method._initial_response.http_response.request.query['locale'] await poller.wait() - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_business_card_locale_error(self, client): with open(self.business_card_jpg, "rb") as fd: diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_business_card_from_url.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_business_card_from_url.py index 8c7c9a79ed4f5..a69af7f44b1a0 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_business_card_from_url.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_business_card_from_url.py @@ -13,8 +13,9 @@ from azure.ai.formrecognizer._generated.models import AnalyzeOperationResult from azure.ai.formrecognizer._response_handlers import prepare_prebuilt_models from azure.ai.formrecognizer import FormRecognizerClient, FormContentType, FormRecognizerApiVersion -from testcase import FormRecognizerTest, GlobalFormRecognizerAccountPreparer -from testcase import GlobalClientPreparer as _GlobalClientPreparer +from testcase import FormRecognizerTest +from preparers import GlobalClientPreparer as _GlobalClientPreparer +from preparers import FormRecognizerPreparer GlobalClientPreparer = functools.partial(_GlobalClientPreparer, FormRecognizerClient) @@ -22,9 +23,9 @@ class TestBusinessCardFromUrl(FormRecognizerTest): - @GlobalFormRecognizerAccountPreparer() - def test_polling_interval(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential(form_recognizer_account_key), polling_interval=7) + @FormRecognizerPreparer() + def test_polling_interval(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormRecognizerClient(formrecognizer_test_endpoint, AzureKeyCredential(formrecognizer_test_api_key), polling_interval=7) self.assertEqual(client._client._config.polling_interval, 7) poller = client.begin_recognize_business_cards_from_url(self.business_card_url_jpg, polling_interval=6) @@ -34,7 +35,7 @@ def test_polling_interval(self, resource_group, location, form_recognizer_accoun poller2.wait() self.assertEqual(poller2._polling_method._timeout, 7) # goes back to client default - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_business_cards_encoded_url(self, client): try: @@ -42,38 +43,38 @@ def test_business_cards_encoded_url(self, client): except HttpResponseError as e: self.assertIn("https://fakeuri.com/blank%20space", e.response.request.body) - @GlobalFormRecognizerAccountPreparer() - def test_business_card_url_bad_endpoint(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): + @FormRecognizerPreparer() + def test_business_card_url_bad_endpoint(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): with self.assertRaises(ServiceRequestError): - client = FormRecognizerClient("http://notreal.azure.com", AzureKeyCredential(form_recognizer_account_key)) + client = FormRecognizerClient("http://notreal.azure.com", AzureKeyCredential(formrecognizer_test_api_key)) poller = client.begin_recognize_business_cards_from_url(self.business_card_url_jpg) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_authentication_successful_key(self, client): poller = client.begin_recognize_business_cards_from_url(self.business_card_url_jpg) result = poller.result() - @GlobalFormRecognizerAccountPreparer() - def test_authentication_bad_key(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential("xxxx")) + @FormRecognizerPreparer() + def test_authentication_bad_key(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormRecognizerClient(formrecognizer_test_endpoint, AzureKeyCredential("xxxx")) with self.assertRaises(ClientAuthenticationError): poller = client.begin_recognize_business_cards_from_url(self.business_card_url_jpg) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_business_card_bad_url(self, client): with self.assertRaises(HttpResponseError): poller = client.begin_recognize_business_cards_from_url("https://badurl.jpg") - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_business_card_url_pass_stream(self, client): with open(self.business_card_png, "rb") as business_card: with self.assertRaises(HttpResponseError): poller = client.begin_recognize_business_cards_from_url(business_card) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_business_card_url_transform_png(self, client): responses = [] @@ -107,7 +108,7 @@ def callback(raw_response, _, headers): # Check page metadata self.assertFormPagesTransformCorrect(business_card.pages, read_results) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_business_card_url_transform_jpg(self, client): responses = [] @@ -142,7 +143,7 @@ def callback(raw_response, _, headers): # Check page metadata self.assertFormPagesTransformCorrect(business_card.pages, read_results) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_business_card_url_multipage_transform_pdf(self, client): responses = [] @@ -179,7 +180,7 @@ def callback(raw_response, _, headers): # Check page metadata self.assertFormPagesTransformCorrect(returned_model, read_results) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_business_card_jpg(self, client): poller = client.begin_recognize_business_cards_from_url(self.business_card_url_jpg) @@ -221,7 +222,7 @@ def test_business_card_jpg(self, client): self.assertEqual(len(business_card.fields.get("CompanyNames").value), 1) self.assertEqual(business_card.fields.get("CompanyNames").value[0].value, "Contoso") - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_business_card_png(self, client): poller = client.begin_recognize_business_cards_from_url(self.business_card_url_png) @@ -263,7 +264,7 @@ def test_business_card_png(self, client): self.assertEqual(len(business_card.fields.get("CompanyNames").value), 1) self.assertEqual(business_card.fields.get("CompanyNames").value[0].value, "Contoso") - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_business_card_multipage_pdf(self, client): @@ -324,7 +325,7 @@ def test_business_card_multipage_pdf(self, client): self.assertEqual(len(business_card.fields.get("CompanyNames").value), 1) self.assertEqual(business_card.fields.get("CompanyNames").value[0].value, "Contoso") - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_business_card_jpg_include_field_elements(self, client): poller = client.begin_recognize_business_cards_from_url(self.business_card_url_jpg, include_field_elements=True) @@ -339,7 +340,7 @@ def test_business_card_jpg_include_field_elements(self, client): for f in field.value: self.assertFieldElementsHasValues(f.value_data.field_elements, business_card.page_range.first_page_number) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() @pytest.mark.live_test_only def test_business_card_continuation_token(self, client): @@ -351,21 +352,21 @@ def test_business_card_continuation_token(self, client): self.assertIsNotNone(result) initial_poller.wait() # necessary so azure-devtools doesn't throw assertion error - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer(client_kwargs={"api_version": FormRecognizerApiVersion.V2_0}) def test_business_card_v2(self, client): with pytest.raises(ValueError) as e: client.begin_recognize_business_cards_from_url(self.business_card_url_jpg) assert "Method 'begin_recognize_business_cards_from_url' is only available for API version V2_1_PREVIEW and up" in str(e.value) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_business_card_locale_specified(self, client): poller = client.begin_recognize_business_cards_from_url(self.business_card_url_jpg, locale="en-IN") assert 'en-IN' == poller._polling_method._initial_response.http_response.request.query['locale'] poller.wait() - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_business_card_locale_error(self, client): with pytest.raises(HttpResponseError) as e: diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_business_card_from_url_async.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_business_card_from_url_async.py index eb093499311a9..962095ed26f93 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_business_card_from_url_async.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_business_card_from_url_async.py @@ -13,9 +13,9 @@ from azure.ai.formrecognizer._response_handlers import prepare_prebuilt_models from azure.ai.formrecognizer import FormRecognizerApiVersion from azure.ai.formrecognizer.aio import FormRecognizerClient -from testcase import GlobalFormRecognizerAccountPreparer +from preparers import FormRecognizerPreparer from asynctestcase import AsyncFormRecognizerTest -from testcase import GlobalClientPreparer as _GlobalClientPreparer +from preparers import GlobalClientPreparer as _GlobalClientPreparer GlobalClientPreparer = functools.partial(_GlobalClientPreparer, FormRecognizerClient) @@ -23,9 +23,9 @@ class TestBusinessCardFromUrlAsync(AsyncFormRecognizerTest): - @GlobalFormRecognizerAccountPreparer() - async def test_polling_interval(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential(form_recognizer_account_key), polling_interval=7) + @FormRecognizerPreparer() + async def test_polling_interval(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormRecognizerClient(formrecognizer_test_endpoint, AzureKeyCredential(formrecognizer_test_api_key), polling_interval=7) self.assertEqual(client._client._config.polling_interval, 7) async with client: @@ -36,7 +36,7 @@ async def test_polling_interval(self, resource_group, location, form_recognizer_ await poller2.wait() self.assertEqual(poller2._polling_method._timeout, 7) # goes back to client default - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_business_cards_encoded_url(self, client): async with client: @@ -45,36 +45,36 @@ async def test_business_cards_encoded_url(self, client): except HttpResponseError as e: self.assertIn("https://fakeuri.com/blank%20space", e.response.request.body) - @GlobalFormRecognizerAccountPreparer() - async def test_business_card_url_bad_endpoint(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): + @FormRecognizerPreparer() + async def test_business_card_url_bad_endpoint(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): with self.assertRaises(ServiceRequestError): - client = FormRecognizerClient("http://notreal.azure.com", AzureKeyCredential(form_recognizer_account_key)) + client = FormRecognizerClient("http://notreal.azure.com", AzureKeyCredential(formrecognizer_test_api_key)) async with client: poller = await client.begin_recognize_business_cards_from_url(self.business_card_url_jpg) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_authentication_successful_key(self, client): async with client: poller = await client.begin_recognize_business_cards_from_url(self.business_card_url_jpg) result = await poller.result() - @GlobalFormRecognizerAccountPreparer() - async def test_authentication_bad_key(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential("xxxx")) + @FormRecognizerPreparer() + async def test_authentication_bad_key(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormRecognizerClient(formrecognizer_test_endpoint, AzureKeyCredential("xxxx")) async with client: with self.assertRaises(ClientAuthenticationError): poller = await client.begin_recognize_business_cards_from_url(self.business_card_url_jpg) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_business_card_bad_url(self, client): async with client: with self.assertRaises(HttpResponseError): poller = await client.begin_recognize_business_cards_from_url("https://badurl.jpg") - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_business_card_url_pass_stream(self, client): async with client: @@ -82,7 +82,7 @@ async def test_business_card_url_pass_stream(self, client): with self.assertRaises(HttpResponseError): poller = await client.begin_recognize_business_cards_from_url(business_card) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_business_card_url_transform_png(self, client): responses = [] @@ -117,7 +117,7 @@ def callback(raw_response, _, headers): # Check page metadata self.assertFormPagesTransformCorrect(business_card.pages, read_results) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_business_card_url_transform_jpg(self, client): responses = [] @@ -153,7 +153,7 @@ def callback(raw_response, _, headers): # Check page metadata self.assertFormPagesTransformCorrect(business_card.pages, read_results) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_business_card_url_multipage_transform_pdf(self, client): responses = [] @@ -191,7 +191,7 @@ def callback(raw_response, _, headers): # Check page metadata self.assertFormPagesTransformCorrect(returned_model, read_results) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_business_card_jpg(self, client): async with client: @@ -234,7 +234,7 @@ async def test_business_card_jpg(self, client): self.assertEqual(len(business_card.fields.get("CompanyNames").value), 1) self.assertEqual(business_card.fields.get("CompanyNames").value[0].value, "Contoso") - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_business_card_png(self, client): async with client: @@ -277,7 +277,7 @@ async def test_business_card_png(self, client): self.assertEqual(len(business_card.fields.get("CompanyNames").value), 1) self.assertEqual(business_card.fields.get("CompanyNames").value[0].value, "Contoso") - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_business_card_multipage_pdf(self, client): @@ -339,7 +339,7 @@ async def test_business_card_multipage_pdf(self, client): self.assertEqual(len(business_card.fields.get("CompanyNames").value), 1) self.assertEqual(business_card.fields.get("CompanyNames").value[0].value, "Contoso") - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_business_card_jpg_include_field_elements(self, client): async with client: @@ -355,7 +355,7 @@ async def test_business_card_jpg_include_field_elements(self, client): for f in field.value: self.assertFieldElementsHasValues(f.value_data.field_elements, business_card.page_range.first_page_number) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() @pytest.mark.live_test_only async def test_business_card_continuation_token(self, client): @@ -367,7 +367,7 @@ async def test_business_card_continuation_token(self, client): self.assertIsNotNone(result) await initial_poller.wait() # necessary so azure-devtools doesn't throw assertion error - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer(client_kwargs={"api_version": FormRecognizerApiVersion.V2_0}) async def test_business_card_v2(self, client): with pytest.raises(ValueError) as e: @@ -375,7 +375,7 @@ async def test_business_card_v2(self, client): await client.begin_recognize_business_cards_from_url(self.business_card_url_jpg) assert "Method 'begin_recognize_business_cards_from_url' is only available for API version V2_1_PREVIEW and up" in str(e.value) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_business_card_locale_specified(self, client): async with client: @@ -383,7 +383,7 @@ async def test_business_card_locale_specified(self, client): assert 'en-IN' == poller._polling_method._initial_response.http_response.request.query['locale'] await poller.wait() - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_business_card_locale_error(self, client): with pytest.raises(HttpResponseError) as e: diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_compose_model.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_compose_model.py index 4ca8b1f9065ec..6bcdc1a264add 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_compose_model.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_compose_model.py @@ -8,22 +8,23 @@ import functools from azure.core.exceptions import ClientAuthenticationError, HttpResponseError from azure.ai.formrecognizer import FormTrainingClient -from testcase import FormRecognizerTest, GlobalFormRecognizerAccountPreparer -from testcase import GlobalClientPreparer as _GlobalClientPreparer +from testcase import FormRecognizerTest +from preparers import GlobalClientPreparer as _GlobalClientPreparer +from preparers import FormRecognizerPreparer GlobalClientPreparer = functools.partial(_GlobalClientPreparer, FormTrainingClient) class TestTraining(FormRecognizerTest): - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) - def test_compose_model_with_model_name(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_compose_model_with_model_name(self, client, formrecognizer_storage_container_sas_url): - poller = client.begin_training(container_sas_url, use_training_labels=True) + poller = client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=True) model_1 = poller.result() - poller = client.begin_training(container_sas_url, use_training_labels=True, model_name="second-labeled-model") + poller = client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=True, model_name="second-labeled-model") model_2 = poller.result() poller = client.begin_create_composed_model([model_1.model_id, model_2.model_id], model_name="my composed model") @@ -32,14 +33,14 @@ def test_compose_model_with_model_name(self, client, container_sas_url): self.assertEqual(composed_model.model_name, "my composed model") self.assertComposedModelHasValues(composed_model, model_1, model_2) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) - def test_compose_model_no_model_name(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_compose_model_no_model_name(self, client, formrecognizer_storage_container_sas_url): - poller = client.begin_training(container_sas_url, use_training_labels=True) + poller = client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=True) model_1 = poller.result() - poller = client.begin_training(container_sas_url, use_training_labels=True) + poller = client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=True) model_2 = poller.result() poller = client.begin_create_composed_model([model_1.model_id, model_2.model_id]) @@ -48,14 +49,14 @@ def test_compose_model_no_model_name(self, client, container_sas_url): self.assertIsNone(composed_model.model_name) self.assertComposedModelHasValues(composed_model, model_1, model_2) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) - def test_compose_model_invalid_unlabeled_models(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_compose_model_invalid_unlabeled_models(self, client, formrecognizer_storage_container_sas_url): - poller = client.begin_training(container_sas_url, use_training_labels=False) + poller = client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=False) model_1 = poller.result() - poller = client.begin_training(container_sas_url, use_training_labels=False) + poller = client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=False) model_2 = poller.result() with pytest.raises(HttpResponseError) as e: @@ -64,9 +65,9 @@ def test_compose_model_invalid_unlabeled_models(self, client, container_sas_url) self.assertEqual(e.value.error.code, "1001") self.assertIsNotNone(e.value.error.message) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) - def test_compose_model_invalid_model(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_compose_model_invalid_model(self, client, formrecognizer_storage_container_sas_url): with pytest.raises(HttpResponseError) as e: poller = client.begin_create_composed_model(["00000000-0000-0000-0000-000000000000"]) @@ -74,15 +75,15 @@ def test_compose_model_invalid_model(self, client, container_sas_url): self.assertEqual(e.value.error.code, "1001") self.assertIsNotNone(e.value.error.message) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) + @FormRecognizerPreparer() + @GlobalClientPreparer() @pytest.mark.live_test_only - def test_compose_continuation_token(self, client, container_sas_url): + def test_compose_continuation_token(self, client, formrecognizer_storage_container_sas_url): - poller = client.begin_training(container_sas_url, use_training_labels=True) + poller = client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=True) model_1 = poller.result() - poller = client.begin_training(container_sas_url, use_training_labels=True) + poller = client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=True) model_2 = poller.result() initial_poller = client.begin_create_composed_model([model_1.model_id, model_2.model_id]) @@ -94,9 +95,9 @@ def test_compose_continuation_token(self, client, container_sas_url): initial_poller.wait() # necessary so azure-devtools doesn't throw assertion error - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, client_kwargs={"api_version": "2.0"}) - def test_compose_model_bad_api_version(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer(client_kwargs={"api_version": "2.0"}) + def test_compose_model_bad_api_version(self, client, formrecognizer_storage_container_sas_url): with pytest.raises(ValueError) as excinfo: poller = client.begin_create_composed_model(["00000000-0000-0000-0000-000000000000", "00000000-0000-0000-0000-000000000000"]) result = poller.result() diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_compose_model_async.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_compose_model_async.py index 47ce60249dadc..c0bc9fd695c0e 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_compose_model_async.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_compose_model_async.py @@ -8,8 +8,8 @@ import functools from azure.core.exceptions import ClientAuthenticationError, HttpResponseError from azure.ai.formrecognizer.aio import FormTrainingClient -from testcase import FormRecognizerTest, GlobalFormRecognizerAccountPreparer -from testcase import GlobalClientPreparer as _GlobalClientPreparer +from preparers import FormRecognizerPreparer +from preparers import GlobalClientPreparer as _GlobalClientPreparer from asynctestcase import AsyncFormRecognizerTest @@ -18,14 +18,14 @@ class TestTrainingAsync(AsyncFormRecognizerTest): - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) - async def test_compose_model_with_model_name(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_compose_model_with_model_name(self, client, formrecognizer_storage_container_sas_url): async with client: - poller = await client.begin_training(container_sas_url, use_training_labels=True) + poller = await client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=True) model_1 = await poller.result() - poller = await client.begin_training(container_sas_url, use_training_labels=True, model_name="second-labeled-model") + poller = await client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=True, model_name="second-labeled-model") model_2 = await poller.result() poller = await client.begin_create_composed_model([model_1.model_id, model_2.model_id], model_name="my composed model") @@ -34,14 +34,14 @@ async def test_compose_model_with_model_name(self, client, container_sas_url): self.assertEqual(composed_model.model_name, "my composed model") self.assertComposedModelHasValues(composed_model, model_1, model_2) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) - async def test_compose_model_no_model_name(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_compose_model_no_model_name(self, client, formrecognizer_storage_container_sas_url): async with client: - poller = await client.begin_training(container_sas_url, use_training_labels=True) + poller = await client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=True) model_1 = await poller.result() - poller = await client.begin_training(container_sas_url, use_training_labels=True) + poller = await client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=True) model_2 = await poller.result() poller = await client.begin_create_composed_model([model_1.model_id, model_2.model_id]) @@ -50,14 +50,14 @@ async def test_compose_model_no_model_name(self, client, container_sas_url): self.assertIsNone(composed_model.model_name) self.assertComposedModelHasValues(composed_model, model_1, model_2) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) - async def test_compose_model_invalid_unlabeled_models(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_compose_model_invalid_unlabeled_models(self, client, formrecognizer_storage_container_sas_url): async with client: - poller = await client.begin_training(container_sas_url, use_training_labels=False) + poller = await client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=False) model_1 = await poller.result() - poller = await client.begin_training(container_sas_url, use_training_labels=False) + poller = await client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=False) model_2 = await poller.result() with pytest.raises(HttpResponseError) as e: @@ -66,9 +66,9 @@ async def test_compose_model_invalid_unlabeled_models(self, client, container_sa self.assertEqual(e.value.error.code, "1001") self.assertIsNotNone(e.value.error.message) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) - async def test_compose_model_invalid_model(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_compose_model_invalid_model(self, client, formrecognizer_storage_container_sas_url): async with client: with pytest.raises(HttpResponseError) as e: poller = await client.begin_create_composed_model(["00000000-0000-0000-0000-000000000000"]) @@ -76,15 +76,15 @@ async def test_compose_model_invalid_model(self, client, container_sas_url): self.assertEqual(e.value.error.code, "1001") self.assertIsNotNone(e.value.error.message) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) + @FormRecognizerPreparer() + @GlobalClientPreparer() @pytest.mark.live_test_only - async def test_compose_continuation_token(self, client, container_sas_url): + async def test_compose_continuation_token(self, client, formrecognizer_storage_container_sas_url): async with client: - poller = await client.begin_training(container_sas_url, use_training_labels=True) + poller = await client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=True) model_1 = await poller.result() - poller = await client.begin_training(container_sas_url, use_training_labels=True) + poller = await client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=True) model_2 = await poller.result() initial_poller = await client.begin_create_composed_model([model_1.model_id, model_2.model_id]) @@ -96,9 +96,9 @@ async def test_compose_continuation_token(self, client, container_sas_url): await initial_poller.wait() # necessary so azure-devtools doesn't throw assertion error - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, client_kwargs={"api_version": "2.0"}) - async def test_compose_model_bad_api_version(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer(client_kwargs={"api_version": "2.0"}) + async def test_compose_model_bad_api_version(self, client, formrecognizer_storage_container_sas_url): async with client: with pytest.raises(ValueError) as excinfo: poller = await client.begin_create_composed_model(["00000000-0000-0000-0000-000000000000", "00000000-0000-0000-0000-000000000000"]) diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_content.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_content.py index a4f9178d08ebe..8b139aaee24ea 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_content.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_content.py @@ -12,24 +12,24 @@ from azure.ai.formrecognizer._generated.models import AnalyzeOperationResult from azure.ai.formrecognizer._response_handlers import prepare_content_result from azure.ai.formrecognizer import FormRecognizerClient, FormContentType, FormRecognizerApiVersion -from testcase import FormRecognizerTest, GlobalFormRecognizerAccountPreparer -from testcase import GlobalClientPreparer as _GlobalClientPreparer - +from testcase import FormRecognizerTest +from preparers import GlobalClientPreparer as _GlobalClientPreparer +from preparers import FormRecognizerPreparer GlobalClientPreparer = functools.partial(_GlobalClientPreparer, FormRecognizerClient) class TestContentFromStream(FormRecognizerTest): - @GlobalFormRecognizerAccountPreparer() - def test_content_bad_endpoint(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): + @FormRecognizerPreparer() + def test_content_bad_endpoint(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): with open(self.invoice_pdf, "rb") as fd: myfile = fd.read() with self.assertRaises(ServiceRequestError): - client = FormRecognizerClient("http://notreal.azure.com", AzureKeyCredential(form_recognizer_account_key)) + client = FormRecognizerClient("http://notreal.azure.com", AzureKeyCredential(formrecognizer_test_api_key)) poller = client.begin_recognize_content(myfile) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_content_authentication_successful_key(self, client): with open(self.invoice_pdf, "rb") as fd: @@ -37,13 +37,13 @@ def test_content_authentication_successful_key(self, client): poller = client.begin_recognize_content(myfile) result = poller.result() - @GlobalFormRecognizerAccountPreparer() - def test_content_authentication_bad_key(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential("xxxx")) + @FormRecognizerPreparer() + def test_content_authentication_bad_key(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormRecognizerClient(formrecognizer_test_endpoint, AzureKeyCredential("xxxx")) with self.assertRaises(ClientAuthenticationError): poller = client.begin_recognize_content(b"xx", content_type="application/pdf") - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_passing_enum_content_type(self, client): with open(self.invoice_pdf, "rb") as fd: @@ -55,7 +55,7 @@ def test_passing_enum_content_type(self, client): result = poller.result() self.assertIsNotNone(result) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_damaged_file_passed_as_bytes(self, client): damaged_pdf = b"\x25\x50\x44\x46\x55\x55\x55" # still has correct bytes to be recognized as PDF @@ -64,7 +64,7 @@ def test_damaged_file_passed_as_bytes(self, client): damaged_pdf, ) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_damaged_file_bytes_fails_autodetect_content_type(self, client): damaged_pdf = b"\x50\x44\x46\x55\x55\x55" # doesn't match any magic file numbers @@ -73,7 +73,7 @@ def test_damaged_file_bytes_fails_autodetect_content_type(self, client): damaged_pdf, ) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_damaged_file_passed_as_bytes_io(self, client): damaged_pdf = BytesIO(b"\x25\x50\x44\x46\x55\x55\x55") # still has correct bytes to be recognized as PDF @@ -82,7 +82,7 @@ def test_damaged_file_passed_as_bytes_io(self, client): damaged_pdf, ) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_damaged_file_bytes_io_fails_autodetect(self, client): damaged_pdf = BytesIO(b"\x50\x44\x46\x55\x55\x55") # doesn't match any magic file numbers @@ -91,7 +91,7 @@ def test_damaged_file_bytes_io_fails_autodetect(self, client): damaged_pdf, ) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_blank_page(self, client): with open(self.blank_pdf, "rb") as stream: @@ -101,7 +101,7 @@ def test_blank_page(self, client): result = poller.result() self.assertIsNotNone(result) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_passing_bad_content_type_param_passed(self, client): with open(self.invoice_pdf, "rb") as fd: @@ -112,13 +112,13 @@ def test_passing_bad_content_type_param_passed(self, client): content_type="application/jpeg" ) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_content_stream_passing_url(self, client): with self.assertRaises(TypeError): poller = client.begin_recognize_content("https://badurl.jpg", content_type="application/json") - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_auto_detect_unsupported_stream_content(self, client): with open(self.unsupported_content_py, "rb") as fd: @@ -129,7 +129,7 @@ def test_auto_detect_unsupported_stream_content(self, client): myfile ) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_content_stream_transform_pdf(self, client): with open(self.invoice_pdf, "rb") as fd: @@ -153,7 +153,7 @@ def callback(raw_response, _, headers): # Check form pages self.assertFormPagesTransformCorrect(layout, read_results, page_results) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_content_stream_pdf(self, client): with open(self.invoice_pdf, "rb") as fd: @@ -169,7 +169,7 @@ def test_content_stream_pdf(self, client): self.assertEqual(layout.tables[0].column_count, 6) self.assertEqual(layout.tables[0].page_number, 1) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_content_stream_transform_jpg(self, client): with open(self.form_jpg, "rb") as fd: @@ -193,7 +193,7 @@ def callback(raw_response, _, headers): # Check form pages self.assertFormPagesTransformCorrect(layout, read_results, page_results) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_content_stream_jpg(self, client): with open(self.form_jpg, "rb") as stream: @@ -210,7 +210,7 @@ def test_content_stream_jpg(self, client): self.assertEqual(layout.tables[0].page_number, 1) self.assertEqual(layout.tables[1].page_number, 1) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_content_multipage(self, client): with open(self.multipage_invoice_pdf, "rb") as fd: @@ -221,7 +221,7 @@ def test_content_multipage(self, client): self.assertEqual(len(result), 3) self.assertFormPagesHasValues(result) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_content_multipage_transform(self, client): with open(self.multipage_invoice_pdf, "rb") as fd: @@ -245,7 +245,7 @@ def callback(raw_response, _, headers): # Check form pages self.assertFormPagesTransformCorrect(layout, read_results, page_results) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() @pytest.mark.live_test_only def test_content_continuation_token(self, client): @@ -259,7 +259,7 @@ def test_content_continuation_token(self, client): self.assertIsNotNone(result) initial_poller.wait() # necessary so azure-devtools doesn't throw assertion error - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_content_multipage_table_span_pdf(self, client): with open(self.multipage_table_pdf, "rb") as stream: @@ -284,7 +284,7 @@ def test_content_multipage_table_span_pdf(self, client): self.assertEqual(layout.tables[0].page_number, 2) self.assertFormPagesHasValues(result) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_content_multipage_table_span_transform(self, client): with open(self.multipage_table_pdf, "rb") as fd: @@ -308,7 +308,7 @@ def callback(raw_response, _, headers): # Check form pages self.assertFormPagesTransformCorrect(layout, read_results, page_results) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_content_selection_marks(self, client): with open(self.selection_form_pdf, "rb") as fd: @@ -321,7 +321,7 @@ def test_content_selection_marks(self, client): self.assertEqual(layout.page_number, 1) self.assertFormPagesHasValues(result) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer(client_kwargs={"api_version": FormRecognizerApiVersion.V2_0}) def test_content_selection_marks_v2(self, client): with open(self.selection_form_pdf, "rb") as fd: @@ -334,7 +334,7 @@ def test_content_selection_marks_v2(self, client): self.assertEqual(layout.page_number, 1) self.assertFormPagesHasValues(result) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_content_specify_pages(self, client): @@ -357,7 +357,7 @@ def test_content_specify_pages(self, client): result = poller.result() assert len(result) == 3 - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_content_language_specified(self, client): with open(self.form_jpg, "rb") as fd: @@ -366,7 +366,7 @@ def test_content_language_specified(self, client): assert 'de' == poller._polling_method._initial_response.http_response.request.query['language'] poller.wait() - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_content_language_error(self, client): with open(self.form_jpg, "rb") as fd: @@ -375,7 +375,7 @@ def test_content_language_error(self, client): client.begin_recognize_content(myfile, language="not a language") assert "NotSupportedLanguage" == e.value.error.code - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer(client_kwargs={"api_version": FormRecognizerApiVersion.V2_0}) def test_content_language_v2(self, client): with open(self.form_jpg, "rb") as fd: diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_content_async.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_content_async.py index c79c8fa54ea3c..e39ceebfea7cb 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_content_async.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_content_async.py @@ -13,9 +13,9 @@ from azure.ai.formrecognizer._response_handlers import prepare_content_result from azure.ai.formrecognizer.aio import FormRecognizerClient from azure.ai.formrecognizer import FormContentType, FormRecognizerApiVersion -from testcase import GlobalFormRecognizerAccountPreparer +from preparers import FormRecognizerPreparer from asynctestcase import AsyncFormRecognizerTest -from testcase import GlobalClientPreparer as _GlobalClientPreparer +from preparers import GlobalClientPreparer as _GlobalClientPreparer GlobalClientPreparer = functools.partial(_GlobalClientPreparer, FormRecognizerClient) @@ -23,17 +23,17 @@ class TestContentFromStreamAsync(AsyncFormRecognizerTest): - @GlobalFormRecognizerAccountPreparer() - async def test_content_bad_endpoint(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): + @FormRecognizerPreparer() + async def test_content_bad_endpoint(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): with open(self.invoice_pdf, "rb") as fd: myfile = fd.read() with self.assertRaises(ServiceRequestError): - client = FormRecognizerClient("http://notreal.azure.com", AzureKeyCredential(form_recognizer_account_key)) + client = FormRecognizerClient("http://notreal.azure.com", AzureKeyCredential(formrecognizer_test_api_key)) async with client: poller = await client.begin_recognize_content(myfile) result = await poller.result() - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_content_authentication_successful_key(self, client): with open(self.invoice_pdf, "rb") as fd: @@ -42,15 +42,15 @@ async def test_content_authentication_successful_key(self, client): poller = await client.begin_recognize_content(myfile) result = await poller.result() - @GlobalFormRecognizerAccountPreparer() - async def test_content_authentication_bad_key(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential("xxxx")) + @FormRecognizerPreparer() + async def test_content_authentication_bad_key(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormRecognizerClient(formrecognizer_test_endpoint, AzureKeyCredential("xxxx")) with self.assertRaises(ClientAuthenticationError): async with client: poller = await client.begin_recognize_content(b"xxx", content_type="application/pdf") result = await poller.result() - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_passing_enum_content_type(self, client): with open(self.invoice_pdf, "rb") as fd: @@ -63,7 +63,7 @@ async def test_passing_enum_content_type(self, client): result = await poller.result() self.assertIsNotNone(result) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_damaged_file_passed_as_bytes(self, client): damaged_pdf = b"\x25\x50\x44\x46\x55\x55\x55" # still has correct bytes to be recognized as PDF @@ -74,7 +74,7 @@ async def test_damaged_file_passed_as_bytes(self, client): ) result = await poller.result() - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_damaged_file_bytes_fails_autodetect_content_type(self, client): damaged_pdf = b"\x50\x44\x46\x55\x55\x55" # doesn't match any magic file numbers @@ -85,7 +85,7 @@ async def test_damaged_file_bytes_fails_autodetect_content_type(self, client): ) result = await poller.result() - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_damaged_file_passed_as_bytes_io(self, client): damaged_pdf = BytesIO(b"\x25\x50\x44\x46\x55\x55\x55") # still has correct bytes to be recognized as PDF @@ -96,7 +96,7 @@ async def test_damaged_file_passed_as_bytes_io(self, client): ) result = await poller.result() - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_damaged_file_bytes_io_fails_autodetect(self, client): damaged_pdf = BytesIO(b"\x50\x44\x46\x55\x55\x55") # doesn't match any magic file numbers @@ -107,7 +107,7 @@ async def test_damaged_file_bytes_io_fails_autodetect(self, client): ) result = await poller.result() - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_blank_page(self, client): with open(self.blank_pdf, "rb") as fd: @@ -119,7 +119,7 @@ async def test_blank_page(self, client): result = await poller.result() self.assertIsNotNone(result) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_passing_bad_content_type_param_passed(self, client): with open(self.invoice_pdf, "rb") as fd: @@ -132,7 +132,7 @@ async def test_passing_bad_content_type_param_passed(self, client): ) result = await poller.result() - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_content_stream_passing_url(self, client): with self.assertRaises(TypeError): @@ -140,7 +140,7 @@ async def test_content_stream_passing_url(self, client): poller = await client.begin_recognize_content("https://badurl.jpg", content_type="application/json") result = await poller.result() - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_auto_detect_unsupported_stream_content(self, client): with open(self.unsupported_content_py, "rb") as fd: @@ -153,7 +153,7 @@ async def test_auto_detect_unsupported_stream_content(self, client): ) result = await poller.result() - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_content_stream_transform_pdf(self, client): with open(self.invoice_pdf, "rb") as fd: @@ -178,7 +178,7 @@ def callback(raw_response, _, headers): # Check form pages self.assertFormPagesTransformCorrect(layout, read_results, page_results) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_content_stream_pdf(self, client): with open(self.invoice_pdf, "rb") as fd: @@ -195,7 +195,7 @@ async def test_content_stream_pdf(self, client): self.assertEqual(layout.tables[0].column_count, 6) self.assertEqual(layout.tables[0].page_number, 1) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_content_stream_transform_jpg(self, client): with open(self.form_jpg, "rb") as fd: @@ -220,7 +220,7 @@ def callback(raw_response, _, headers): # Check form pages self.assertFormPagesTransformCorrect(layout, read_results, page_results) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_content_stream_jpg(self, client): with open(self.form_jpg, "rb") as fd: @@ -240,7 +240,7 @@ async def test_content_stream_jpg(self, client): self.assertEqual(layout.tables[0].page_number, 1) self.assertEqual(layout.tables[1].page_number, 1) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_content_multipage(self, client): with open(self.multipage_invoice_pdf, "rb") as fd: @@ -252,7 +252,7 @@ async def test_content_multipage(self, client): self.assertEqual(len(result), 3) self.assertFormPagesHasValues(result) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_content_multipage_transform(self, client): with open(self.multipage_invoice_pdf, "rb") as fd: @@ -277,7 +277,7 @@ def callback(raw_response, _, headers): # Check form pages self.assertFormPagesTransformCorrect(layout, read_results, page_results) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() @pytest.mark.live_test_only async def test_content_continuation_token(self, client): @@ -292,7 +292,7 @@ async def test_content_continuation_token(self, client): await initial_poller.wait() # necessary so azure-devtools doesn't throw assertion error - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_content_multipage_table_span_pdf(self, client): with open(self.multipage_table_pdf, "rb") as fd: @@ -318,7 +318,7 @@ async def test_content_multipage_table_span_pdf(self, client): self.assertEqual(layout.tables[0].page_number, 2) self.assertFormPagesHasValues(result) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_content_multipage_table_span_transform(self, client): with open(self.multipage_table_pdf, "rb") as fd: @@ -342,7 +342,7 @@ def callback(raw_response, _, headers): # Check form pages self.assertFormPagesTransformCorrect(layout, read_results, page_results) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_content_selection_marks(self, client): with open(self.selection_form_pdf, "rb") as fd: @@ -356,7 +356,7 @@ async def test_content_selection_marks(self, client): self.assertEqual(layout.page_number, 1) self.assertFormPagesHasValues(result) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer(client_kwargs={"api_version": FormRecognizerApiVersion.V2_0}) async def test_content_selection_marks_v2(self, client): with open(self.selection_form_pdf, "rb") as fd: @@ -370,7 +370,7 @@ async def test_content_selection_marks_v2(self, client): self.assertEqual(layout.page_number, 1) self.assertFormPagesHasValues(result) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_content_specify_pages(self, client): with open(self.multipage_invoice_pdf, "rb") as fd: @@ -393,7 +393,7 @@ async def test_content_specify_pages(self, client): result = await poller.result() assert len(result) == 3 - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_content_language_specified(self, client): with open(self.form_jpg, "rb") as fd: @@ -403,7 +403,7 @@ async def test_content_language_specified(self, client): assert 'de' == poller._polling_method._initial_response.http_response.request.query['language'] await poller.wait() - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_content_language_error(self, client): with open(self.form_jpg, "rb") as fd: @@ -413,7 +413,7 @@ async def test_content_language_error(self, client): await client.begin_recognize_content(myfile, language="not a language") assert "NotSupportedLanguage" == e.value.error.code - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer(client_kwargs={"api_version": FormRecognizerApiVersion.V2_0}) async def test_content_language_v2(self, client): with open(self.form_jpg, "rb") as fd: diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_content_from_url.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_content_from_url.py index 37c6c900aff28..93b778be6c7e6 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_content_from_url.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_content_from_url.py @@ -11,8 +11,9 @@ from azure.ai.formrecognizer._generated.models import AnalyzeOperationResult from azure.ai.formrecognizer._response_handlers import prepare_content_result from azure.ai.formrecognizer import FormRecognizerClient, FormRecognizerApiVersion -from testcase import FormRecognizerTest, GlobalFormRecognizerAccountPreparer -from testcase import GlobalClientPreparer as _GlobalClientPreparer +from testcase import FormRecognizerTest +from preparers import GlobalClientPreparer as _GlobalClientPreparer +from preparers import FormRecognizerPreparer GlobalClientPreparer = functools.partial(_GlobalClientPreparer, FormRecognizerClient) @@ -20,7 +21,7 @@ class TestContentFromUrl(FormRecognizerTest): - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_content_encoded_url(self, client): with pytest.raises(HttpResponseError) as e: @@ -28,38 +29,38 @@ def test_content_encoded_url(self, client): client.close() self.assertIn("https://fakeuri.com/blank%20space", e.value.response.request.body) - @GlobalFormRecognizerAccountPreparer() - def test_content_url_bad_endpoint(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): + @FormRecognizerPreparer() + def test_content_url_bad_endpoint(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): with self.assertRaises(ServiceRequestError): - client = FormRecognizerClient("http://notreal.azure.com", AzureKeyCredential(form_recognizer_account_key)) + client = FormRecognizerClient("http://notreal.azure.com", AzureKeyCredential(formrecognizer_test_api_key)) poller = client.begin_recognize_content_from_url(self.invoice_url_pdf) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_content_url_auth_successful_key(self, client): poller = client.begin_recognize_content_from_url(self.invoice_url_pdf) result = poller.result() - @GlobalFormRecognizerAccountPreparer() - def test_content_url_auth_bad_key(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential("xxxx")) + @FormRecognizerPreparer() + def test_content_url_auth_bad_key(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormRecognizerClient(formrecognizer_test_endpoint, AzureKeyCredential("xxxx")) with self.assertRaises(ClientAuthenticationError): poller = client.begin_recognize_content_from_url(self.invoice_url_pdf) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_content_bad_url(self, client): with self.assertRaises(HttpResponseError): poller = client.begin_recognize_content_from_url("https://badurl.jpg") - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_content_url_pass_stream(self, client): with open(self.receipt_jpg, "rb") as receipt: with self.assertRaises(HttpResponseError): poller = client.begin_recognize_content_from_url(receipt) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_content_url_transform_pdf(self, client): responses = [] @@ -80,7 +81,7 @@ def callback(raw_response, _, headers): # Check form pages self.assertFormPagesTransformCorrect(layout, read_results, page_results) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_content_url_pdf(self, client): poller = client.begin_recognize_content_from_url(self.invoice_url_pdf) @@ -93,7 +94,7 @@ def test_content_url_pdf(self, client): self.assertEqual(layout.tables[0].column_count, 6) self.assertEqual(layout.tables[0].page_number, 1) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_content_url_transform_jpg(self, client): responses = [] @@ -114,7 +115,7 @@ def callback(raw_response, _, headers): # Check form pages self.assertFormPagesTransformCorrect(layout, read_results, page_results) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_content_url_jpg(self, client): poller = client.begin_recognize_content_from_url(self.form_url_jpg) @@ -130,7 +131,7 @@ def test_content_url_jpg(self, client): self.assertEqual(layout.tables[0].page_number, 1) self.assertEqual(layout.tables[1].page_number, 1) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_content_multipage_url(self, client): poller = client.begin_recognize_content_from_url(self.multipage_url_pdf) @@ -139,7 +140,7 @@ def test_content_multipage_url(self, client): self.assertEqual(len(result), 3) self.assertFormPagesHasValues(result) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_content_multipage_transform_url(self, client): responses = [] @@ -160,7 +161,7 @@ def callback(raw_response, _, headers): # Check form pages self.assertFormPagesTransformCorrect(layout, read_results, page_results) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() @pytest.mark.live_test_only def test_content_continuation_token(self, client): @@ -172,7 +173,7 @@ def test_content_continuation_token(self, client): self.assertIsNotNone(result) initial_poller.wait() # necessary so azure-devtools doesn't throw assertion error - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_content_multipage_table_span_pdf(self, client): poller = client.begin_recognize_content_from_url(self.multipage_table_url_pdf) @@ -195,7 +196,7 @@ def test_content_multipage_table_span_pdf(self, client): self.assertEqual(layout.tables[0].page_number, 2) self.assertFormPagesHasValues(result) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_content_multipage_table_span_transform(self, client): responses = [] @@ -216,7 +217,7 @@ def callback(raw_response, _, headers): # Check form pages self.assertFormPagesTransformCorrect(layout, read_results, page_results) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_content_selection_marks(self, client): poller = client.begin_recognize_content_from_url(form_url=self.selection_mark_url_pdf) @@ -226,7 +227,7 @@ def test_content_selection_marks(self, client): self.assertEqual(layout.page_number, 1) self.assertFormPagesHasValues(result) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer(client_kwargs={"api_version": FormRecognizerApiVersion.V2_0}) def test_content_selection_marks_v2(self, client): poller = client.begin_recognize_content_from_url(form_url=self.selection_mark_url_pdf) @@ -236,7 +237,7 @@ def test_content_selection_marks_v2(self, client): self.assertEqual(layout.page_number, 1) self.assertFormPagesHasValues(result) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_content_specify_pages(self, client): poller = client.begin_recognize_content_from_url(self.multipage_url_pdf, pages=["1"]) @@ -255,91 +256,98 @@ def test_content_specify_pages(self, client): result = poller.result() assert len(result) == 3 - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_content_language_specified(self, client): poller = client.begin_recognize_content_from_url(self.form_url_jpg, language="de") assert 'de' == poller._polling_method._initial_response.http_response.request.query['language'] poller.wait() - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_content_language_error(self, client): with pytest.raises(HttpResponseError) as e: client.begin_recognize_content_from_url(self.form_url_jpg, language="not a language") assert "NotSupportedLanguage" == e.value.error.code - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer(client_kwargs={"api_version": FormRecognizerApiVersion.V2_0}) def test_content_language_v2(self, client): with pytest.raises(ValueError) as e: client.begin_recognize_content_from_url(self.form_url_jpg, language="en") assert "'language' is only available for API version V2_1_PREVIEW and up" in str(e.value) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(language="german") - def test_content_language_german(self, client, language_form): - poller = client.begin_recognize_content_from_url(language_form, language="de") + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_content_language_german(self, client, formrecognizer_testing_data_container_sas_url): + blob_sas_url = self.get_blob_url(formrecognizer_testing_data_container_sas_url, "testingdata", "content_german.pdf") + poller = client.begin_recognize_content_from_url(blob_sas_url, language="de") result = poller.result() self.assertEqual(len(result), 1) layout = result[0] self.assertEqual(layout.page_number, 1) self.assertFormPagesHasValues(result) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(language="chinese_simplified") - def test_content_language_chinese_simplified(self, client, language_form): - poller = client.begin_recognize_content_from_url(language_form, language="zh-Hans") + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_content_language_chinese_simplified(self, client, formrecognizer_testing_data_container_sas_url): + blob_sas_url = self.get_blob_url(formrecognizer_testing_data_container_sas_url, "testingdata", "content_chinese_simplified.pdf") + poller = client.begin_recognize_content_from_url(blob_sas_url, language="zh-Hans") result = poller.result() self.assertEqual(len(result), 1) layout = result[0] self.assertEqual(layout.page_number, 1) self.assertFormPagesHasValues(result) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(language="dutch") - def test_content_language_dutch(self, client, language_form): - poller = client.begin_recognize_content_from_url(language_form, language="nl") + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_content_language_dutch(self, client, formrecognizer_testing_data_container_sas_url): + blob_sas_url = self.get_blob_url(formrecognizer_testing_data_container_sas_url, "testingdata", "content_dutch.pdf") + poller = client.begin_recognize_content_from_url(blob_sas_url, language="nl") result = poller.result() self.assertEqual(len(result), 1) layout = result[0] self.assertEqual(layout.page_number, 1) self.assertFormPagesHasValues(result) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(language="french") - def test_content_language_french(self, client, language_form): - poller = client.begin_recognize_content_from_url(language_form, language="fr") + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_content_language_french(self, client, formrecognizer_testing_data_container_sas_url): + blob_sas_url = self.get_blob_url(formrecognizer_testing_data_container_sas_url, "testingdata", "content_french.pdf") + poller = client.begin_recognize_content_from_url(blob_sas_url, language="fr") result = poller.result() self.assertEqual(len(result), 1) layout = result[0] self.assertEqual(layout.page_number, 1) self.assertFormPagesHasValues(result) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(language="italian") - def test_content_language_italian(self, client, language_form): - poller = client.begin_recognize_content_from_url(language_form, language="it") + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_content_language_italian(self, client, formrecognizer_testing_data_container_sas_url): + blob_sas_url = self.get_blob_url(formrecognizer_testing_data_container_sas_url, "testingdata", "content_italian.pdf") + poller = client.begin_recognize_content_from_url(blob_sas_url, language="it") result = poller.result() self.assertEqual(len(result), 1) layout = result[0] self.assertEqual(layout.page_number, 1) self.assertFormPagesHasValues(result) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(language="portuguese") - def test_content_language_portuguese(self, client, language_form): - poller = client.begin_recognize_content_from_url(language_form, language="pt") + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_content_language_portuguese(self, client, formrecognizer_testing_data_container_sas_url): + blob_sas_url = self.get_blob_url(formrecognizer_testing_data_container_sas_url, "testingdata", "content_portuguese.pdf") + poller = client.begin_recognize_content_from_url(blob_sas_url, language="pt") result = poller.result() self.assertEqual(len(result), 1) layout = result[0] self.assertEqual(layout.page_number, 1) self.assertFormPagesHasValues(result) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(language="spanish") - def test_content_language_spanish(self, client, language_form): - poller = client.begin_recognize_content_from_url(language_form, language="es") + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_content_language_spanish(self, client, formrecognizer_testing_data_container_sas_url): + blob_sas_url = self.get_blob_url(formrecognizer_testing_data_container_sas_url, "testingdata", "content_spanish.pdf") + poller = client.begin_recognize_content_from_url(blob_sas_url, language="es") result = poller.result() self.assertEqual(len(result), 1) layout = result[0] diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_content_from_url_async.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_content_from_url_async.py index c6f9f09e3215e..d7bf30968ec79 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_content_from_url_async.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_content_from_url_async.py @@ -12,9 +12,9 @@ from azure.ai.formrecognizer._response_handlers import prepare_content_result from azure.ai.formrecognizer.aio import FormRecognizerClient from azure.ai.formrecognizer import FormRecognizerApiVersion -from testcase import GlobalFormRecognizerAccountPreparer +from preparers import FormRecognizerPreparer from asynctestcase import AsyncFormRecognizerTest -from testcase import GlobalClientPreparer as _GlobalClientPreparer +from preparers import GlobalClientPreparer as _GlobalClientPreparer GlobalClientPreparer = functools.partial(_GlobalClientPreparer, FormRecognizerClient) @@ -22,7 +22,7 @@ class TestContentFromUrlAsync(AsyncFormRecognizerTest): - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_content_encoded_url(self, client): with pytest.raises(HttpResponseError) as e: @@ -30,30 +30,30 @@ async def test_content_encoded_url(self, client): await client.close() self.assertIn("https://fakeuri.com/blank%20space", e.value.response.request.body) - @GlobalFormRecognizerAccountPreparer() - async def test_content_url_bad_endpoint(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): + @FormRecognizerPreparer() + async def test_content_url_bad_endpoint(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): with self.assertRaises(ServiceRequestError): - client = FormRecognizerClient("http://notreal.azure.com", AzureKeyCredential(form_recognizer_account_key)) + client = FormRecognizerClient("http://notreal.azure.com", AzureKeyCredential(formrecognizer_test_api_key)) async with client: poller = await client.begin_recognize_content_from_url(self.invoice_url_pdf) result = await poller.result() - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_content_url_auth_successful_key(self, client): async with client: poller = await client.begin_recognize_content_from_url(self.invoice_url_pdf) result = await poller.result() - @GlobalFormRecognizerAccountPreparer() - async def test_content_url_auth_bad_key(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential("xxxx")) + @FormRecognizerPreparer() + async def test_content_url_auth_bad_key(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormRecognizerClient(formrecognizer_test_endpoint, AzureKeyCredential("xxxx")) with self.assertRaises(ClientAuthenticationError): async with client: poller = await client.begin_recognize_content_from_url(self.invoice_url_pdf) result = await poller.result() - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_content_bad_url(self, client): with self.assertRaises(HttpResponseError): @@ -61,7 +61,7 @@ async def test_content_bad_url(self, client): poller = await client.begin_recognize_content_from_url("https://badurl.jpg") result = await poller.result() - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_content_url_pass_stream(self, client): with open(self.receipt_jpg, "rb") as fd: @@ -72,7 +72,7 @@ async def test_content_url_pass_stream(self, client): poller = await client.begin_recognize_content_from_url(receipt) result = await poller.result() - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_content_url_transform_pdf(self, client): responses = [] @@ -94,7 +94,7 @@ def callback(raw_response, _, headers): # Check form pages self.assertFormPagesTransformCorrect(layout, read_results, page_results) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_content_url_pdf(self, client): async with client: @@ -108,7 +108,7 @@ async def test_content_url_pdf(self, client): self.assertEqual(layout.tables[0].column_count, 6) self.assertEqual(layout.tables[0].page_number, 1) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_content_url_transform_jpg(self, client): responses = [] @@ -130,7 +130,7 @@ def callback(raw_response, _, headers): # Check form pages self.assertFormPagesTransformCorrect(layout, read_results, page_results) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_content_url_jpg(self, client): async with client: @@ -147,7 +147,7 @@ async def test_content_url_jpg(self, client): self.assertEqual(layout.tables[0].page_number, 1) self.assertEqual(layout.tables[1].page_number, 1) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_content_multipage_url(self, client): async with client: @@ -156,7 +156,7 @@ async def test_content_multipage_url(self, client): self.assertEqual(len(result), 3) self.assertFormPagesHasValues(result) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_content_multipage_transform_url(self, client): responses = [] @@ -178,7 +178,7 @@ def callback(raw_response, _, headers): # Check form pages self.assertFormPagesTransformCorrect(layout, read_results, page_results) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() @pytest.mark.live_test_only async def test_content_continuation_token(self, client): @@ -191,7 +191,7 @@ async def test_content_continuation_token(self, client): self.assertIsNotNone(result) await initial_poller.wait() # necessary so azure-devtools doesn't throw assertion error - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_content_multipage_table_span_pdf(self, client): async with client: @@ -215,7 +215,7 @@ async def test_content_multipage_table_span_pdf(self, client): self.assertEqual(layout.tables[0].page_number, 2) self.assertFormPagesHasValues(result) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_content_multipage_table_span_transform(self, client): responses = [] @@ -237,7 +237,7 @@ def callback(raw_response, _, headers): # Check form pages self.assertFormPagesTransformCorrect(layout, read_results, page_results) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_content_selection_marks(self, client): async with client: @@ -248,7 +248,7 @@ async def test_content_selection_marks(self, client): self.assertEqual(layout.page_number, 1) self.assertFormPagesHasValues(result) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer(client_kwargs={"api_version": FormRecognizerApiVersion.V2_0}) async def test_content_selection_marks_v2(self, client): async with client: @@ -259,7 +259,7 @@ async def test_content_selection_marks_v2(self, client): self.assertEqual(layout.page_number, 1) self.assertFormPagesHasValues(result) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_content_specify_pages(self, client): async with client: @@ -279,7 +279,7 @@ async def test_content_specify_pages(self, client): result = await poller.result() assert len(result) == 3 - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_content_language_specified(self, client): async with client: @@ -287,7 +287,7 @@ async def test_content_language_specified(self, client): assert 'de' == poller._polling_method._initial_response.http_response.request.query['language'] await poller.wait() - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_content_language_error(self, client): async with client: @@ -295,7 +295,7 @@ async def test_content_language_error(self, client): await client.begin_recognize_content_from_url(self.form_url_jpg, language="not a language") assert "NotSupportedLanguage" == e.value.error.code - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer(client_kwargs={"api_version": FormRecognizerApiVersion.V2_0}) async def test_content_language_v2(self, client): async with client: @@ -303,77 +303,84 @@ async def test_content_language_v2(self, client): await client.begin_recognize_content_from_url(self.form_url_jpg, language="en") assert "'language' is only available for API version V2_1_PREVIEW and up" in str(e.value) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(language="german") - async def test_content_language_german(self, client, language_form): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_content_language_german(self, client, formrecognizer_testing_data_container_sas_url): + blob_sas_url = self.get_blob_url(formrecognizer_testing_data_container_sas_url, "testingdata", "content_german.pdf") async with client: - poller = await client.begin_recognize_content_from_url(language_form, language="de") + poller = await client.begin_recognize_content_from_url(blob_sas_url, language="de") result = await poller.result() self.assertEqual(len(result), 1) layout = result[0] self.assertEqual(layout.page_number, 1) self.assertFormPagesHasValues(result) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(language="chinese_simplified") - async def test_content_language_chinese_simplified(self, client, language_form): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_content_language_chinese_simplified(self, client, formrecognizer_testing_data_container_sas_url): + blob_sas_url = self.get_blob_url(formrecognizer_testing_data_container_sas_url, "testingdata", "content_chinese_simplified.pdf") async with client: - poller = await client.begin_recognize_content_from_url(language_form, language="zh-Hans") + poller = await client.begin_recognize_content_from_url(blob_sas_url, language="zh-Hans") result = await poller.result() self.assertEqual(len(result), 1) layout = result[0] self.assertEqual(layout.page_number, 1) self.assertFormPagesHasValues(result) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(language="dutch") - async def test_content_language_dutch(self, client, language_form): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_content_language_dutch(self, client, formrecognizer_testing_data_container_sas_url): + blob_sas_url = self.get_blob_url(formrecognizer_testing_data_container_sas_url, "testingdata", "content_dutch.pdf") async with client: - poller = await client.begin_recognize_content_from_url(language_form, language="nl") + poller = await client.begin_recognize_content_from_url(blob_sas_url, language="nl") result = await poller.result() self.assertEqual(len(result), 1) layout = result[0] self.assertEqual(layout.page_number, 1) self.assertFormPagesHasValues(result) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(language="french") - async def test_content_language_french(self, client, language_form): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_content_language_french(self, client, formrecognizer_testing_data_container_sas_url): + blob_sas_url = self.get_blob_url(formrecognizer_testing_data_container_sas_url, "testingdata", "content_french.pdf") async with client: - poller = await client.begin_recognize_content_from_url(language_form, language="fr") + poller = await client.begin_recognize_content_from_url(blob_sas_url, language="fr") result = await poller.result() self.assertEqual(len(result), 1) layout = result[0] self.assertEqual(layout.page_number, 1) self.assertFormPagesHasValues(result) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(language="italian") - async def test_content_language_italian(self, client, language_form): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_content_language_italian(self, client, formrecognizer_testing_data_container_sas_url): + blob_sas_url = self.get_blob_url(formrecognizer_testing_data_container_sas_url, "testingdata", "content_italian.pdf") async with client: - poller = await client.begin_recognize_content_from_url(language_form, language="it") + poller = await client.begin_recognize_content_from_url(blob_sas_url, language="it") result = await poller.result() self.assertEqual(len(result), 1) layout = result[0] self.assertEqual(layout.page_number, 1) self.assertFormPagesHasValues(result) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(language="portuguese") - async def test_content_language_portuguese(self, client, language_form): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_content_language_portuguese(self, client, formrecognizer_testing_data_container_sas_url): + blob_sas_url = self.get_blob_url(formrecognizer_testing_data_container_sas_url, "testingdata", "content_portuguese.pdf") async with client: - poller = await client.begin_recognize_content_from_url(language_form, language="pt") + poller = await client.begin_recognize_content_from_url(blob_sas_url, language="pt") result = await poller.result() self.assertEqual(len(result), 1) layout = result[0] self.assertEqual(layout.page_number, 1) self.assertFormPagesHasValues(result) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(language="spanish") - async def test_content_language_spanish(self, client, language_form): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_content_language_spanish(self, client, formrecognizer_testing_data_container_sas_url): + blob_sas_url = self.get_blob_url(formrecognizer_testing_data_container_sas_url, "testingdata", "content_spanish.pdf") async with client: - poller = await client.begin_recognize_content_from_url(language_form, language="es") + poller = await client.begin_recognize_content_from_url(blob_sas_url, language="es") result = await poller.result() self.assertEqual(len(result), 1) layout = result[0] diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_copy_model.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_copy_model.py index 4acec4b8e7686..dfd23d198ec45 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_copy_model.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_copy_model.py @@ -10,35 +10,35 @@ from azure.ai.formrecognizer._generated.models import CopyOperationResult from azure.ai.formrecognizer import CustomFormModelInfo from azure.ai.formrecognizer import FormTrainingClient -from testcase import FormRecognizerTest, GlobalFormRecognizerAccountPreparer -from testcase import GlobalClientPreparer as _GlobalClientPreparer - +from testcase import FormRecognizerTest +from preparers import GlobalClientPreparer as _GlobalClientPreparer +from preparers import FormRecognizerPreparer GlobalClientPreparer = functools.partial(_GlobalClientPreparer, FormTrainingClient) class TestCopyModel(FormRecognizerTest): - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) - def test_copy_model_none_model_id(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_copy_model_none_model_id(self, client, formrecognizer_storage_container_sas_url): with self.assertRaises(ValueError): client.begin_copy_model(model_id=None, target={}) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) - def test_copy_model_empty_model_id(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_copy_model_empty_model_id(self, client, formrecognizer_storage_container_sas_url): with self.assertRaises(ValueError): client.begin_copy_model(model_id="", target={}) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, copy=True) - def test_copy_model_successful(self, client, container_sas_url, location, resource_id): + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_copy_model_successful(self, client, formrecognizer_storage_container_sas_url, formrecognizer_region, formrecognizer_resource_id): - poller = client.begin_training(container_sas_url, use_training_labels=False) + poller = client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=False) model = poller.result() - target = client.get_copy_authorization(resource_region=location, resource_id=resource_id) + target = client.get_copy_authorization(resource_region=formrecognizer_region, resource_id=formrecognizer_resource_id) poller = client.begin_copy_model(model.model_id, target=target) copy = poller.result() @@ -52,15 +52,15 @@ def test_copy_model_successful(self, client, container_sas_url, location, resour self.assertNotEqual(target["modelId"], model.model_id) self.assertIsNotNone(copied_model) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, copy=True) - def test_copy_model_fail(self, client, container_sas_url, location, resource_id): + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_copy_model_fail(self, client, formrecognizer_storage_container_sas_url, formrecognizer_region, formrecognizer_resource_id): - poller = client.begin_training(container_sas_url, use_training_labels=False) + poller = client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=False) model = poller.result() # give an incorrect region - target = client.get_copy_authorization(resource_region="eastus", resource_id=resource_id) + target = client.get_copy_authorization(resource_region="eastus", resource_id=formrecognizer_resource_id) with pytest.raises(HttpResponseError) as e: poller = client.begin_copy_model(model.model_id, target=target) @@ -68,15 +68,15 @@ def test_copy_model_fail(self, client, container_sas_url, location, resource_id) self.assertIsNotNone(e.value.error.code) self.assertIsNotNone(e.value.error.message) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, copy=True) - def test_copy_model_case_insensitive_region(self, client, container_sas_url, location, resource_id): + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_copy_model_case_insensitive_region(self, client, formrecognizer_storage_container_sas_url, formrecognizer_region, formrecognizer_resource_id): - poller = client.begin_training(container_sas_url, use_training_labels=False) + poller = client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=False) model = poller.result() # give region all uppercase - target = client.get_copy_authorization(resource_region=location.upper(), resource_id=resource_id) + target = client.get_copy_authorization(resource_region=formrecognizer_region.upper(), resource_id=formrecognizer_resource_id) poller = client.begin_copy_model(model.model_id, target=target) copy = poller.result() @@ -87,28 +87,28 @@ def test_copy_model_case_insensitive_region(self, client, container_sas_url, loc self.assertEqual(target["modelId"], copy.model_id) self.assertNotEqual(target["modelId"], model.model_id) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, copy=True) - def test_copy_model_fail_bad_model_id(self, client, container_sas_url, location, resource_id): + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_copy_model_fail_bad_model_id(self, client, formrecognizer_storage_container_sas_url, formrecognizer_region, formrecognizer_resource_id): - poller = client.begin_training(container_sas_url, use_training_labels=False) + poller = client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=False) model = poller.result() - target = client.get_copy_authorization(resource_region=location, resource_id=resource_id) + target = client.get_copy_authorization(resource_region=formrecognizer_region, resource_id=formrecognizer_resource_id) with self.assertRaises(HttpResponseError): # give bad model_id poller = client.begin_copy_model("00000000-0000-0000-0000-000000000000", target=target) copy = poller.result() - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, copy=True) - def test_copy_model_transform(self, client, container_sas_url, location, resource_id): + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_copy_model_transform(self, client, formrecognizer_storage_container_sas_url, formrecognizer_region, formrecognizer_resource_id): - poller = client.begin_training(container_sas_url, use_training_labels=False) + poller = client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=False) model = poller.result() - target = client.get_copy_authorization(resource_region=location, resource_id=resource_id) + target = client.get_copy_authorization(resource_region=formrecognizer_region, resource_id=formrecognizer_resource_id) raw_response = [] @@ -128,27 +128,27 @@ def callback(response, _, headers): self.assertEqual(copy.training_completed_on, actual.last_updated_date_time) self.assertEqual(copy.model_id, target["modelId"]) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, copy=True) - def test_copy_authorization(self, client, container_sas_url, location, resource_id): + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_copy_authorization(self, client, formrecognizer_storage_container_sas_url, formrecognizer_region, formrecognizer_resource_id): - target = client.get_copy_authorization(resource_region="eastus", resource_id=resource_id) + target = client.get_copy_authorization(resource_region="eastus", resource_id=formrecognizer_resource_id) self.assertIsNotNone(target["modelId"]) self.assertIsNotNone(target["accessToken"]) self.assertIsNotNone(target["expirationDateTimeTicks"]) self.assertEqual(target["resourceRegion"], "eastus") - self.assertEqual(target["resourceId"], resource_id) + self.assertEqual(target["resourceId"], formrecognizer_resource_id) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, copy=True) + @FormRecognizerPreparer() + @GlobalClientPreparer() @pytest.mark.live_test_only - def test_copy_continuation_token(self, client, container_sas_url, location, resource_id): + def test_copy_continuation_token(self, client, formrecognizer_storage_container_sas_url, formrecognizer_region, formrecognizer_resource_id): - poller = client.begin_training(container_sas_url, use_training_labels=False) + poller = client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=False) model = poller.result() - target = client.get_copy_authorization(resource_region=location, resource_id=resource_id) + target = client.get_copy_authorization(resource_region=formrecognizer_region, resource_id=formrecognizer_resource_id) initial_poller = client.begin_copy_model(model.model_id, target=target) cont_token = initial_poller.continuation_token() @@ -160,14 +160,14 @@ def test_copy_continuation_token(self, client, container_sas_url, location, reso self.assertIsNotNone(copied_model) initial_poller.wait() # necessary so azure-devtools doesn't throw assertion error - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, copy=True) - def test_copy_model_with_labeled_model_name(self, client, container_sas_url, location, resource_id): + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_copy_model_with_labeled_model_name(self, client, formrecognizer_storage_container_sas_url, formrecognizer_region, formrecognizer_resource_id): - poller = client.begin_training(container_sas_url, use_training_labels=True, model_name="mymodel") + poller = client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=True, model_name="mymodel") model = poller.result() - target = client.get_copy_authorization(resource_region=location, resource_id=resource_id) + target = client.get_copy_authorization(resource_region=formrecognizer_region, resource_id=formrecognizer_resource_id) poller = client.begin_copy_model(model.model_id, target=target) copy = poller.result() @@ -182,14 +182,14 @@ def test_copy_model_with_labeled_model_name(self, client, container_sas_url, loc self.assertIsNotNone(copied_model) self.assertEqual(copied_model.model_name, "mymodel") - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, copy=True) - def test_copy_model_with_unlabeled_model_name(self, client, container_sas_url, location, resource_id): + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_copy_model_with_unlabeled_model_name(self, client, formrecognizer_storage_container_sas_url, formrecognizer_region, formrecognizer_resource_id): - poller = client.begin_training(container_sas_url, use_training_labels=False, model_name="mymodel") + poller = client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=False, model_name="mymodel") model = poller.result() - target = client.get_copy_authorization(resource_region=location, resource_id=resource_id) + target = client.get_copy_authorization(resource_region=formrecognizer_region, resource_id=formrecognizer_resource_id) poller = client.begin_copy_model(model.model_id, target=target) copy = poller.result() @@ -204,20 +204,20 @@ def test_copy_model_with_unlabeled_model_name(self, client, container_sas_url, l self.assertIsNotNone(copied_model) # self.assertEqual(copied_model.model_name, "mymodel") # FIXME: still is not returned for unlabeled - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, copy=True) - def test_copy_model_with_composed_model(self, client, container_sas_url, location, resource_id): + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_copy_model_with_composed_model(self, client, formrecognizer_storage_container_sas_url, formrecognizer_region, formrecognizer_resource_id): - poller_1 = client.begin_training(container_sas_url, use_training_labels=True, model_name="model1") + poller_1 = client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=True, model_name="model1") model_1 = poller_1.result() - poller_2 = client.begin_training(container_sas_url, use_training_labels=True, model_name="model2") + poller_2 = client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=True, model_name="model2") model_2 = poller_2.result() composed_poller = client.begin_create_composed_model([model_1.model_id, model_2.model_id], model_name="composedmodel") composed_model = composed_poller.result() - target = client.get_copy_authorization(resource_region=location, resource_id=resource_id) + target = client.get_copy_authorization(resource_region=formrecognizer_region, resource_id=formrecognizer_resource_id) poller = client.begin_copy_model(composed_model.model_id, target=target) copy = poller.result() diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_copy_model_async.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_copy_model_async.py index b93bbcbaeeb07..3cad6bf73f045 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_copy_model_async.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_copy_model_async.py @@ -10,9 +10,9 @@ from azure.ai.formrecognizer._generated.models import CopyOperationResult from azure.ai.formrecognizer import CustomFormModelInfo from azure.ai.formrecognizer.aio import FormTrainingClient -from testcase import GlobalFormRecognizerAccountPreparer +from preparers import FormRecognizerPreparer from asynctestcase import AsyncFormRecognizerTest -from testcase import GlobalClientPreparer as _GlobalClientPreparer +from preparers import GlobalClientPreparer as _GlobalClientPreparer GlobalClientPreparer = functools.partial(_GlobalClientPreparer, FormTrainingClient) @@ -20,28 +20,28 @@ class TestCopyModelAsync(AsyncFormRecognizerTest): - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) - async def test_copy_model_none_model_id(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_copy_model_none_model_id(self, client, formrecognizer_storage_container_sas_url): with self.assertRaises(ValueError): async with client: await client.begin_copy_model(model_id=None, target={}) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) - async def test_copy_model_empty_model_id(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_copy_model_empty_model_id(self, client, formrecognizer_storage_container_sas_url): with self.assertRaises(ValueError): async with client: await client.begin_copy_model(model_id="", target={}) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, copy=True) - async def test_copy_model_successful(self, client, container_sas_url, location, resource_id): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_copy_model_successful(self, client, formrecognizer_storage_container_sas_url, formrecognizer_region, formrecognizer_resource_id): async with client: - training_poller = await client.begin_training(container_sas_url, use_training_labels=False) + training_poller = await client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=False) model = await training_poller.result() - target = await client.get_copy_authorization(resource_region=location, resource_id=resource_id) + target = await client.get_copy_authorization(resource_region=formrecognizer_region, resource_id=formrecognizer_resource_id) copy_poller = await client.begin_copy_model(model.model_id, target=target) copy = await copy_poller.result() @@ -55,15 +55,15 @@ async def test_copy_model_successful(self, client, container_sas_url, location, self.assertNotEqual(target["modelId"], model.model_id) self.assertIsNotNone(copied_model) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, copy=True) - async def test_copy_model_fail(self, client, container_sas_url, location, resource_id): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_copy_model_fail(self, client, formrecognizer_storage_container_sas_url, formrecognizer_region, formrecognizer_resource_id): async with client: - training_poller = await client.begin_training(container_sas_url, use_training_labels=False) + training_poller = await client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=False) model = await training_poller.result() # give an incorrect region - target = await client.get_copy_authorization(resource_region="eastus", resource_id=resource_id) + target = await client.get_copy_authorization(resource_region="eastus", resource_id=formrecognizer_resource_id) with pytest.raises(HttpResponseError) as e: poller = await client.begin_copy_model(model.model_id, target=target) @@ -71,15 +71,15 @@ async def test_copy_model_fail(self, client, container_sas_url, location, resour self.assertIsNotNone(e.value.error.code) self.assertIsNotNone(e.value.error.message) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, copy=True) - async def test_copy_model_case_insensitive_region(self, client, container_sas_url, location, resource_id): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_copy_model_case_insensitive_region(self, client, formrecognizer_storage_container_sas_url, formrecognizer_region, formrecognizer_resource_id): async with client: - poller = await client.begin_training(container_sas_url, use_training_labels=False) + poller = await client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=False) model = await poller.result() # give region all uppercase - target = await client.get_copy_authorization(resource_region=location.upper(), resource_id=resource_id) + target = await client.get_copy_authorization(resource_region=formrecognizer_region.upper(), resource_id=formrecognizer_resource_id) poller = await client.begin_copy_model(model.model_id, target=target) copy = await poller.result() @@ -90,24 +90,24 @@ async def test_copy_model_case_insensitive_region(self, client, container_sas_ur self.assertEqual(target["modelId"], copy.model_id) self.assertNotEqual(target["modelId"], model.model_id) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, copy=True) - async def test_copy_model_fail_bad_model_id(self, client, container_sas_url, location, resource_id): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_copy_model_fail_bad_model_id(self, client, formrecognizer_storage_container_sas_url, formrecognizer_region, formrecognizer_resource_id): async with client: - poller = await client.begin_training(container_sas_url, use_training_labels=False) + poller = await client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=False) model = await poller.result() - target = await client.get_copy_authorization(resource_region=location, resource_id=resource_id) + target = await client.get_copy_authorization(resource_region=formrecognizer_region, resource_id=formrecognizer_resource_id) with self.assertRaises(HttpResponseError): # give bad model_id poller = await client.begin_copy_model("00000000-0000-0000-0000-000000000000", target=target) copy = await poller.result() - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, copy=True) - async def test_copy_model_transform(self, client, container_sas_url, location, resource_id): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_copy_model_transform(self, client, formrecognizer_storage_container_sas_url, formrecognizer_region, formrecognizer_resource_id): def callback(response, _, headers): copy_result = client._deserialize(CopyOperationResult, response) model_info = CustomFormModelInfo._from_generated(copy_result, target["modelId"]) @@ -115,10 +115,10 @@ def callback(response, _, headers): raw_response.append(model_info) async with client: - training_poller = await client.begin_training(container_sas_url, use_training_labels=False) + training_poller = await client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=False) model = await training_poller.result() - target = await client.get_copy_authorization(resource_region=location, resource_id=resource_id) + target = await client.get_copy_authorization(resource_region=formrecognizer_region, resource_id=formrecognizer_resource_id) raw_response = [] @@ -132,27 +132,27 @@ def callback(response, _, headers): self.assertEqual(copy.training_completed_on, actual.last_updated_date_time) self.assertEqual(copy.model_id, target["modelId"]) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, copy=True) - async def test_copy_authorization(self, client, container_sas_url, location, resource_id): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_copy_authorization(self, client, formrecognizer_storage_container_sas_url, formrecognizer_region, formrecognizer_resource_id): async with client: - target = await client.get_copy_authorization(resource_region="eastus", resource_id=resource_id) + target = await client.get_copy_authorization(resource_region="eastus", resource_id=formrecognizer_resource_id) self.assertIsNotNone(target["modelId"]) self.assertIsNotNone(target["accessToken"]) self.assertIsNotNone(target["expirationDateTimeTicks"]) self.assertEqual(target["resourceRegion"], "eastus") - self.assertEqual(target["resourceId"], resource_id) + self.assertEqual(target["resourceId"], formrecognizer_resource_id) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, copy=True) + @FormRecognizerPreparer() + @GlobalClientPreparer() @pytest.mark.live_test_only - async def test_copy_continuation_token(self, client, container_sas_url, location, resource_id): + async def test_copy_continuation_token(self, client, formrecognizer_storage_container_sas_url, formrecognizer_region, formrecognizer_resource_id): async with client: - poller = await client.begin_training(container_sas_url, use_training_labels=False) + poller = await client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=False) model = await poller.result() - target = await client.get_copy_authorization(resource_region=location, resource_id=resource_id) + target = await client.get_copy_authorization(resource_region=formrecognizer_region, resource_id=formrecognizer_resource_id) initial_poller = await client.begin_copy_model(model.model_id, target=target) cont_token = initial_poller.continuation_token() @@ -164,14 +164,14 @@ async def test_copy_continuation_token(self, client, container_sas_url, location self.assertIsNotNone(copied_model) await initial_poller.wait() # necessary so azure-devtools doesn't throw assertion error - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, copy=True) - async def test_copy_model_with_labeled_model_name(self, client, container_sas_url, location, resource_id): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_copy_model_with_labeled_model_name(self, client, formrecognizer_storage_container_sas_url, formrecognizer_region, formrecognizer_resource_id): async with client: - poller = await client.begin_training(container_sas_url, use_training_labels=True, model_name="mymodel") + poller = await client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=True, model_name="mymodel") model = await poller.result() - target = await client.get_copy_authorization(resource_region=location, resource_id=resource_id) + target = await client.get_copy_authorization(resource_region=formrecognizer_region, resource_id=formrecognizer_resource_id) poller = await client.begin_copy_model(model.model_id, target=target) copy = await poller.result() @@ -186,14 +186,14 @@ async def test_copy_model_with_labeled_model_name(self, client, container_sas_ur self.assertIsNotNone(copied_model) self.assertEqual(copied_model.model_name, "mymodel") - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, copy=True) - async def test_copy_model_with_unlabeled_model_name(self, client, container_sas_url, location, resource_id): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_copy_model_with_unlabeled_model_name(self, client, formrecognizer_storage_container_sas_url, formrecognizer_region, formrecognizer_resource_id): async with client: - poller = await client.begin_training(container_sas_url, use_training_labels=False, model_name="mymodel") + poller = await client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=False, model_name="mymodel") model = await poller.result() - target = await client.get_copy_authorization(resource_region=location, resource_id=resource_id) + target = await client.get_copy_authorization(resource_region=formrecognizer_region, resource_id=formrecognizer_resource_id) poller = await client.begin_copy_model(model.model_id, target=target) copy = await poller.result() @@ -208,20 +208,20 @@ async def test_copy_model_with_unlabeled_model_name(self, client, container_sas_ self.assertIsNotNone(copied_model) # self.assertEqual(copied_model.model_name, "mymodel") # FIXME: still is not returned for unlabeled - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, copy=True) - async def test_copy_model_with_composed_model(self, client, container_sas_url, location, resource_id): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_copy_model_with_composed_model(self, client, formrecognizer_storage_container_sas_url, formrecognizer_region, formrecognizer_resource_id): async with client: - poller_1 = await client.begin_training(container_sas_url, use_training_labels=True, model_name="model1") + poller_1 = await client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=True, model_name="model1") model_1 = await poller_1.result() - poller_2 = await client.begin_training(container_sas_url, use_training_labels=True, model_name="model2") + poller_2 = await client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=True, model_name="model2") model_2 = await poller_2.result() composed_poller = await client.begin_create_composed_model([model_1.model_id, model_2.model_id], model_name="composedmodel") composed_model = await composed_poller.result() - target = await client.get_copy_authorization(resource_region=location, resource_id=resource_id) + target = await client.get_copy_authorization(resource_region=formrecognizer_region, resource_id=formrecognizer_resource_id) poller = await client.begin_copy_model(composed_model.model_id, target=target) copy = await poller.result() diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_custom_forms.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_custom_forms.py index 20ff5cff015dc..74c5a075414a1 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_custom_forms.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_custom_forms.py @@ -11,50 +11,50 @@ from azure.ai.formrecognizer import FormRecognizerClient, FormContentType, FormTrainingClient from azure.ai.formrecognizer._generated.models import AnalyzeOperationResult from azure.ai.formrecognizer._response_handlers import prepare_form_result -from testcase import FormRecognizerTest, GlobalFormRecognizerAccountPreparer -from testcase import GlobalClientPreparer as _GlobalClientPreparer - +from testcase import FormRecognizerTest +from preparers import GlobalClientPreparer as _GlobalClientPreparer +from preparers import FormRecognizerPreparer GlobalClientPreparer = functools.partial(_GlobalClientPreparer, FormTrainingClient) class TestCustomForms(FormRecognizerTest): - @GlobalFormRecognizerAccountPreparer() - def test_custom_form_none_model_id(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential(form_recognizer_account_key)) + @FormRecognizerPreparer() + def test_custom_form_none_model_id(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormRecognizerClient(formrecognizer_test_endpoint, AzureKeyCredential(formrecognizer_test_api_key)) with self.assertRaises(ValueError): client.begin_recognize_custom_forms(model_id=None, form=b"xx") - @GlobalFormRecognizerAccountPreparer() - def test_custom_form_empty_model_id(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential(form_recognizer_account_key)) + @FormRecognizerPreparer() + def test_custom_form_empty_model_id(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormRecognizerClient(formrecognizer_test_endpoint, AzureKeyCredential(formrecognizer_test_api_key)) with self.assertRaises(ValueError): client.begin_recognize_custom_forms(model_id="", form=b"xx") - @GlobalFormRecognizerAccountPreparer() - def test_custom_form_bad_endpoint(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): + @FormRecognizerPreparer() + def test_custom_form_bad_endpoint(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): with open(self.form_jpg, "rb") as fd: myfile = fd.read() with self.assertRaises(ServiceRequestError): - client = FormRecognizerClient("http://notreal.azure.com", AzureKeyCredential(form_recognizer_account_key)) + client = FormRecognizerClient("http://notreal.azure.com", AzureKeyCredential(formrecognizer_test_api_key)) poller = client.begin_recognize_custom_forms(model_id="xx", form=myfile) - @GlobalFormRecognizerAccountPreparer() - def test_authentication_bad_key(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential("xxxx")) + @FormRecognizerPreparer() + def test_authentication_bad_key(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormRecognizerClient(formrecognizer_test_endpoint, AzureKeyCredential("xxxx")) with self.assertRaises(ClientAuthenticationError): poller = client.begin_recognize_custom_forms(model_id="xx", form=b"xx", content_type="image/jpeg") - @GlobalFormRecognizerAccountPreparer() - def test_passing_unsupported_url_content_type(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential(form_recognizer_account_key)) + @FormRecognizerPreparer() + def test_passing_unsupported_url_content_type(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormRecognizerClient(formrecognizer_test_endpoint, AzureKeyCredential(formrecognizer_test_api_key)) with self.assertRaises(TypeError): poller = client.begin_recognize_custom_forms(model_id="xx", form="https://badurl.jpg", content_type="application/json") - @GlobalFormRecognizerAccountPreparer() - def test_auto_detect_unsupported_stream_content(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential(form_recognizer_account_key)) + @FormRecognizerPreparer() + def test_auto_detect_unsupported_stream_content(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormRecognizerClient(formrecognizer_test_endpoint, AzureKeyCredential(formrecognizer_test_api_key)) with open(self.unsupported_content_py, "rb") as fd: myfile = fd.read() @@ -64,12 +64,12 @@ def test_auto_detect_unsupported_stream_content(self, resource_group, location, form=myfile, ) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) - def test_custom_form_damaged_file(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_custom_form_damaged_file(self, client, formrecognizer_storage_container_sas_url): fr_client = client.get_form_recognizer_client() - poller = client.begin_training(container_sas_url, use_training_labels=False) + poller = client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=False) model = poller.result() with self.assertRaises(HttpResponseError): @@ -79,12 +79,12 @@ def test_custom_form_damaged_file(self, client, container_sas_url): ) form = poller.result() - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) - def test_custom_form_unlabeled_blank_page(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_custom_form_unlabeled_blank_page(self, client, formrecognizer_storage_container_sas_url): fr_client = client.get_form_recognizer_client() - poller = client.begin_training(container_sas_url, use_training_labels=False) + poller = client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=False) model = poller.result() with open(self.blank_pdf, "rb") as fd: @@ -100,12 +100,12 @@ def test_custom_form_unlabeled_blank_page(self, client, container_sas_url): self.assertEqual(form[0].page_range.last_page_number, 1) self.assertIsNotNone(form[0].pages) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) - def test_custom_form_labeled_blank_page(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_custom_form_labeled_blank_page(self, client, formrecognizer_storage_container_sas_url): fr_client = client.get_form_recognizer_client() - poller = client.begin_training(container_sas_url, use_training_labels=True) + poller = client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=True) model = poller.result() with open(self.blank_pdf, "rb") as fd: @@ -121,12 +121,12 @@ def test_custom_form_labeled_blank_page(self, client, container_sas_url): self.assertEqual(form[0].page_range.last_page_number, 1) self.assertIsNotNone(form[0].pages) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) - def test_custom_form_unlabeled(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_custom_form_unlabeled(self, client, formrecognizer_storage_container_sas_url): fr_client = client.get_form_recognizer_client() - poller = client.begin_training(container_sas_url, use_training_labels=False) + poller = client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=False) model = poller.result() with open(self.form_jpg, "rb") as stream: @@ -140,12 +140,12 @@ def test_custom_form_unlabeled(self, client, container_sas_url): self.assertEqual(form[0].form_type, "form-0") self.assertUnlabeledRecognizedFormHasValues(form[0], model) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, multipage=True) - def test_custom_form_multipage_unlabeled(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_custom_form_multipage_unlabeled(self, client, formrecognizer_multipage_storage_container_sas_url): fr_client = client.get_form_recognizer_client() - poller = client.begin_training(container_sas_url, use_training_labels=False) + poller = client.begin_training(formrecognizer_multipage_storage_container_sas_url, use_training_labels=False) model = poller.result() with open(self.multipage_invoice_pdf, "rb") as stream: @@ -162,13 +162,13 @@ def test_custom_form_multipage_unlabeled(self, client, container_sas_url): self.assertEqual(form.form_type, "form-0") self.assertUnlabeledRecognizedFormHasValues(form, model) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) - def test_custom_form_labeled(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_custom_form_labeled(self, client, formrecognizer_storage_container_sas_url): fr_client = client.get_form_recognizer_client() poller = client.begin_training( - container_sas_url, + formrecognizer_storage_container_sas_url, use_training_labels=True, model_name="labeled" ) @@ -183,13 +183,13 @@ def test_custom_form_labeled(self, client, container_sas_url): self.assertEqual(form[0].form_type, "custom:labeled") self.assertLabeledRecognizedFormHasValues(form[0], model) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, multipage=True) - def test_custom_form_multipage_labeled(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_custom_form_multipage_labeled(self, client, formrecognizer_multipage_storage_container_sas_url): fr_client = client.get_form_recognizer_client() poller = client.begin_training( - container_sas_url, + formrecognizer_multipage_storage_container_sas_url, use_training_labels=True ) model = poller.result() @@ -208,12 +208,12 @@ def test_custom_form_multipage_labeled(self, client, container_sas_url): self.assertEqual(form.form_type, "custom:"+model.model_id) self.assertLabeledRecognizedFormHasValues(form, model) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) - def test_custom_form_unlabeled_transform(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_custom_form_unlabeled_transform(self, client, formrecognizer_storage_container_sas_url): fr_client = client.get_form_recognizer_client() - poller = client.begin_training(container_sas_url, use_training_labels=False) + poller = client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=False) model = poller.result() responses = [] @@ -247,12 +247,12 @@ def callback(raw_response, _, headers): self.assertIsNotNone(recognized_form[0].model_id) self.assertUnlabeledFormFieldDictTransformCorrect(recognized_form[0].fields, actual_fields, read_results) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, multipage=True) - def test_custom_form_multipage_unlabeled_transform(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_custom_form_multipage_unlabeled_transform(self, client, formrecognizer_multipage_storage_container_sas_url): fr_client = client.get_form_recognizer_client() - poller = client.begin_training(container_sas_url, use_training_labels=False) + poller = client.begin_training(formrecognizer_multipage_storage_container_sas_url, use_training_labels=False) model = poller.result() responses = [] @@ -287,12 +287,12 @@ def callback(raw_response, _, headers): self.assertEqual(form.model_id, model.model_id) self.assertUnlabeledFormFieldDictTransformCorrect(form.fields, actual.key_value_pairs, read_results) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) - def test_custom_form_labeled_transform(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_custom_form_labeled_transform(self, client, formrecognizer_storage_container_sas_url): fr_client = client.get_form_recognizer_client() - poller = client.begin_training(container_sas_url, use_training_labels=True) + poller = client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=True) model = poller.result() responses = [] @@ -326,12 +326,12 @@ def callback(raw_response, _, headers): self.assertIsNotNone(recognized_form[0].model_id) self.assertFormFieldsTransformCorrect(recognized_form[0].fields, actual_fields, read_results) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, multipage=True) - def test_custom_form_multipage_labeled_transform(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_custom_form_multipage_labeled_transform(self, client, formrecognizer_multipage_storage_container_sas_url): fr_client = client.get_form_recognizer_client() - poller = client.begin_training(container_sas_url, use_training_labels=True) + poller = client.begin_training(formrecognizer_multipage_storage_container_sas_url, use_training_labels=True) model = poller.result() responses = [] @@ -367,13 +367,13 @@ def callback(raw_response, _, headers): self.assertEqual(form.model_id, model.model_id) self.assertFormFieldsTransformCorrect(form.fields, actual.fields, read_results) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) + @FormRecognizerPreparer() + @GlobalClientPreparer() @pytest.mark.live_test_only - def test_custom_form_continuation_token(self, client, container_sas_url): + def test_custom_form_continuation_token(self, client, formrecognizer_storage_container_sas_url): fr_client = client.get_form_recognizer_client() - poller = client.begin_training(container_sas_url, use_training_labels=False) + poller = client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=False) model = poller.result() with open(self.form_jpg, "rb") as fd: @@ -392,12 +392,12 @@ def test_custom_form_continuation_token(self, client, container_sas_url): self.assertIsNotNone(result) initial_poller.wait() # necessary so azure-devtools doesn't throw assertion error - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, multipage2=True) - def test_custom_form_multipage_vendor_set_unlabeled_transform(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_custom_form_multipage_vendor_set_unlabeled_transform(self, client, formrecognizer_multipage_storage_container_sas_url_2): fr_client = client.get_form_recognizer_client() - poller = client.begin_training(container_sas_url, use_training_labels=False) + poller = client.begin_training(formrecognizer_multipage_storage_container_sas_url_2, use_training_labels=False) model = poller.result() responses = [] @@ -431,12 +431,12 @@ def callback(raw_response, _, headers): self.assertEqual(form.model_id, model.model_id) self.assertUnlabeledFormFieldDictTransformCorrect(form.fields, actual.key_value_pairs, read_results) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, multipage2=True) - def test_custom_form_multipage_vendor_set_labeled_transform(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_custom_form_multipage_vendor_set_labeled_transform(self, client, formrecognizer_multipage_storage_container_sas_url_2): fr_client = client.get_form_recognizer_client() - poller = client.begin_training(container_sas_url, use_training_labels=True) + poller = client.begin_training(formrecognizer_multipage_storage_container_sas_url_2, use_training_labels=True) model = poller.result() responses = [] @@ -472,12 +472,12 @@ def callback(raw_response, _, headers): self.assertEqual(form.model_id, model.model_id) self.assertFormFieldsTransformCorrect(form.fields, actual.fields, read_results) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, selection_marks=True) - def test_custom_form_selection_mark(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_custom_form_selection_mark(self, client, formrecognizer_selection_mark_storage_container_sas_url): fr_client = client.get_form_recognizer_client() - poller = client.begin_training(container_sas_url, use_training_labels=True) + poller = client.begin_training(formrecognizer_selection_mark_storage_container_sas_url, use_training_labels=True) model = poller.result() with open(self.selection_form_pdf, "rb") as fd: diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_custom_forms_async.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_custom_forms_async.py index dc09c0462d0f3..ba43bc3b96327 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_custom_forms_async.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_custom_forms_async.py @@ -12,9 +12,9 @@ from azure.ai.formrecognizer.aio import FormRecognizerClient, FormTrainingClient from azure.ai.formrecognizer._generated.models import AnalyzeOperationResult from azure.ai.formrecognizer._response_handlers import prepare_form_result -from testcase import GlobalFormRecognizerAccountPreparer +from preparers import FormRecognizerPreparer from asynctestcase import AsyncFormRecognizerTest -from testcase import GlobalClientPreparer as _GlobalClientPreparer +from preparers import GlobalClientPreparer as _GlobalClientPreparer GlobalClientPreparer = functools.partial(_GlobalClientPreparer, FormTrainingClient) @@ -22,50 +22,50 @@ class TestCustomFormsAsync(AsyncFormRecognizerTest): - @GlobalFormRecognizerAccountPreparer() - async def test_custom_form_none_model_id(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential(form_recognizer_account_key)) + @FormRecognizerPreparer() + async def test_custom_form_none_model_id(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormRecognizerClient(formrecognizer_test_endpoint, AzureKeyCredential(formrecognizer_test_api_key)) with self.assertRaises(ValueError): async with client: await client.begin_recognize_custom_forms(model_id=None, form=b"xx") - @GlobalFormRecognizerAccountPreparer() - async def test_custom_form_empty_model_id(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential(form_recognizer_account_key)) + @FormRecognizerPreparer() + async def test_custom_form_empty_model_id(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormRecognizerClient(formrecognizer_test_endpoint, AzureKeyCredential(formrecognizer_test_api_key)) with self.assertRaises(ValueError): async with client: await client.begin_recognize_custom_forms(model_id="", form=b"xx") - @GlobalFormRecognizerAccountPreparer() - async def test_custom_form_bad_endpoint(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): + @FormRecognizerPreparer() + async def test_custom_form_bad_endpoint(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): with open(self.form_jpg, "rb") as fd: myfile = fd.read() with self.assertRaises(ServiceRequestError): - client = FormRecognizerClient("http://notreal.azure.com", AzureKeyCredential(form_recognizer_account_key)) + client = FormRecognizerClient("http://notreal.azure.com", AzureKeyCredential(formrecognizer_test_api_key)) async with client: poller = await client.begin_recognize_custom_forms(model_id="xx", form=myfile) result = await poller.result() - @GlobalFormRecognizerAccountPreparer() - async def test_authentication_bad_key(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential("xxxx")) + @FormRecognizerPreparer() + async def test_authentication_bad_key(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormRecognizerClient(formrecognizer_test_endpoint, AzureKeyCredential("xxxx")) with self.assertRaises(ClientAuthenticationError): async with client: poller = await client.begin_recognize_custom_forms(model_id="xx", form=b"xx", content_type="image/jpeg") result = await poller.result() - @GlobalFormRecognizerAccountPreparer() - async def test_passing_unsupported_url_content_type(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential(form_recognizer_account_key)) + @FormRecognizerPreparer() + async def test_passing_unsupported_url_content_type(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormRecognizerClient(formrecognizer_test_endpoint, AzureKeyCredential(formrecognizer_test_api_key)) with self.assertRaises(TypeError): async with client: poller = await client.begin_recognize_custom_forms(model_id="xx", form="https://badurl.jpg", content_type="application/json") result = await poller.result() - @GlobalFormRecognizerAccountPreparer() - async def test_auto_detect_unsupported_stream_content(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential(form_recognizer_account_key)) + @FormRecognizerPreparer() + async def test_auto_detect_unsupported_stream_content(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormRecognizerClient(formrecognizer_test_endpoint, AzureKeyCredential(formrecognizer_test_api_key)) with open(self.unsupported_content_py, "rb") as fd: myfile = fd.read() @@ -78,12 +78,12 @@ async def test_auto_detect_unsupported_stream_content(self, resource_group, loca ) result = await poller.result() - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) - async def test_custom_form_damaged_file(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_custom_form_damaged_file(self, client, formrecognizer_storage_container_sas_url): fr_client = client.get_form_recognizer_client() async with client: - training_poller = await client.begin_training(container_sas_url, use_training_labels=False) + training_poller = await client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=False) model = await training_poller.result() with self.assertRaises(HttpResponseError): @@ -94,15 +94,15 @@ async def test_custom_form_damaged_file(self, client, container_sas_url): ) result = await poller.result() - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) - async def test_custom_form_unlabeled_blank_page(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_custom_form_unlabeled_blank_page(self, client, formrecognizer_storage_container_sas_url): fr_client = client.get_form_recognizer_client() with open(self.blank_pdf, "rb") as fd: blank = fd.read() async with client: - poller = await client.begin_training(container_sas_url, use_training_labels=False) + poller = await client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=False) model = await poller.result() async with fr_client: @@ -117,15 +117,15 @@ async def test_custom_form_unlabeled_blank_page(self, client, container_sas_url) self.assertEqual(form[0].page_range.last_page_number, 1) self.assertIsNotNone(form[0].pages) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) - async def test_custom_form_labeled_blank_page(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_custom_form_labeled_blank_page(self, client, formrecognizer_storage_container_sas_url): fr_client = client.get_form_recognizer_client() with open(self.blank_pdf, "rb") as fd: blank = fd.read() async with client: - poller = await client.begin_training(container_sas_url, use_training_labels=True) + poller = await client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=True) model = await poller.result() async with fr_client: @@ -140,16 +140,16 @@ async def test_custom_form_labeled_blank_page(self, client, container_sas_url): self.assertEqual(form[0].page_range.last_page_number, 1) self.assertIsNotNone(form[0].pages) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) - async def test_custom_form_unlabeled(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_custom_form_unlabeled(self, client, formrecognizer_storage_container_sas_url): fr_client = client.get_form_recognizer_client() with open(self.form_jpg, "rb") as fd: myfile = fd.read() async with client: - training_poller = await client.begin_training(container_sas_url, use_training_labels=False) + training_poller = await client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=False) model = await training_poller.result() async with fr_client: @@ -158,15 +158,15 @@ async def test_custom_form_unlabeled(self, client, container_sas_url): self.assertEqual(form[0].form_type, "form-0") self.assertUnlabeledRecognizedFormHasValues(form[0], model) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, multipage=True) - async def test_custom_form_multipage_unlabeled(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_custom_form_multipage_unlabeled(self, client, formrecognizer_multipage_storage_container_sas_url): fr_client = client.get_form_recognizer_client() with open(self.multipage_invoice_pdf, "rb") as fd: myfile = fd.read() async with client: - training_poller = await client.begin_training(container_sas_url, use_training_labels=False) + training_poller = await client.begin_training(formrecognizer_multipage_storage_container_sas_url, use_training_labels=False) model = await training_poller.result() async with fr_client: @@ -183,16 +183,16 @@ async def test_custom_form_multipage_unlabeled(self, client, container_sas_url): self.assertEqual(form.form_type, "form-0") self.assertUnlabeledRecognizedFormHasValues(form, model) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) - async def test_custom_form_labeled(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_custom_form_labeled(self, client, formrecognizer_storage_container_sas_url): fr_client = client.get_form_recognizer_client() with open(self.form_jpg, "rb") as fd: myfile = fd.read() async with client: - training_poller = await client.begin_training(container_sas_url, use_training_labels=True, model_name="labeled") + training_poller = await client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=True, model_name="labeled") model = await training_poller.result() async with fr_client: @@ -202,16 +202,16 @@ async def test_custom_form_labeled(self, client, container_sas_url): self.assertEqual(form[0].form_type, "custom:labeled") self.assertLabeledRecognizedFormHasValues(form[0], model) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, multipage=True) - async def test_custom_form_multipage_labeled(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_custom_form_multipage_labeled(self, client, formrecognizer_multipage_storage_container_sas_url): fr_client = client.get_form_recognizer_client() with open(self.multipage_invoice_pdf, "rb") as fd: myfile = fd.read() async with client: training_poller = await client.begin_training( - container_sas_url, + formrecognizer_multipage_storage_container_sas_url, use_training_labels=True ) model = await training_poller.result() @@ -228,9 +228,9 @@ async def test_custom_form_multipage_labeled(self, client, container_sas_url): self.assertEqual(form.form_type, "custom:"+model.model_id) self.assertLabeledRecognizedFormHasValues(form, model) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) - async def test_form_unlabeled_transform(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_form_unlabeled_transform(self, client, formrecognizer_storage_container_sas_url): fr_client = client.get_form_recognizer_client() responses = [] @@ -245,7 +245,7 @@ def callback(raw_response, _, headers): myfile = fd.read() async with client: - training_poller = await client.begin_training(container_sas_url, use_training_labels=False) + training_poller = await client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=False) model = await training_poller.result() async with fr_client: @@ -270,9 +270,9 @@ def callback(raw_response, _, headers): self.assertIsNotNone(recognized_form[0].model_id) self.assertUnlabeledFormFieldDictTransformCorrect(recognized_form[0].fields, actual_fields, read_results) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, multipage=True) - async def test_custom_forms_multipage_unlabeled_transform(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_custom_forms_multipage_unlabeled_transform(self, client, formrecognizer_multipage_storage_container_sas_url): fr_client = client.get_form_recognizer_client() responses = [] @@ -287,7 +287,7 @@ def callback(raw_response, _, headers): myfile = fd.read() async with client: - training_poller = await client.begin_training(container_sas_url, use_training_labels=False) + training_poller = await client.begin_training(formrecognizer_multipage_storage_container_sas_url, use_training_labels=False) model = await training_poller.result() async with fr_client: @@ -313,9 +313,9 @@ def callback(raw_response, _, headers): self.assertUnlabeledFormFieldDictTransformCorrect(form.fields, actual.key_value_pairs, read_results) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) - async def test_form_labeled_transform(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_form_labeled_transform(self, client, formrecognizer_storage_container_sas_url): fr_client = client.get_form_recognizer_client() responses = [] @@ -330,7 +330,7 @@ def callback(raw_response, _, headers): myfile = fd.read() async with client: - training_polling = await client.begin_training(container_sas_url, use_training_labels=True) + training_polling = await client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=True) model = await training_polling.result() async with fr_client: @@ -355,9 +355,9 @@ def callback(raw_response, _, headers): self.assertIsNotNone(recognized_form[0].model_id) self.assertFormFieldsTransformCorrect(recognized_form[0].fields, actual_fields, read_results) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, multipage=True) - async def test_custom_forms_multipage_labeled_transform(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_custom_forms_multipage_labeled_transform(self, client, formrecognizer_multipage_storage_container_sas_url): fr_client = client.get_form_recognizer_client() responses = [] @@ -372,7 +372,7 @@ def callback(raw_response, _, headers): myfile = fd.read() async with client: - training_poller = await client.begin_training(container_sas_url, use_training_labels=True) + training_poller = await client.begin_training(formrecognizer_multipage_storage_container_sas_url, use_training_labels=True) model = await training_poller.result() async with fr_client: @@ -399,16 +399,16 @@ def callback(raw_response, _, headers): self.assertEqual(form.model_id, model.model_id) self.assertFormFieldsTransformCorrect(form.fields, actual.fields, read_results) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) + @FormRecognizerPreparer() + @GlobalClientPreparer() @pytest.mark.live_test_only - async def test_custom_form_continuation_token(self, client, container_sas_url): + async def test_custom_form_continuation_token(self, client, formrecognizer_storage_container_sas_url): fr_client = client.get_form_recognizer_client() with open(self.form_jpg, "rb") as fd: myfile = fd.read() async with client: - poller = await client.begin_training(container_sas_url, use_training_labels=False) + poller = await client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=False) model = await poller.result() async with fr_client: @@ -427,9 +427,9 @@ async def test_custom_form_continuation_token(self, client, container_sas_url): self.assertIsNotNone(result) await initial_poller.wait() # necessary so azure-devtools doesn't throw assertion error - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, multipage2=True) - async def test_custom_form_multipage_vendor_set_unlabeled_transform(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_custom_form_multipage_vendor_set_unlabeled_transform(self, client, formrecognizer_multipage_storage_container_sas_url_2): fr_client = client.get_form_recognizer_client() responses = [] @@ -444,7 +444,7 @@ def callback(raw_response, _, headers): myfile = fd.read() async with client: - poller = await client.begin_training(container_sas_url, use_training_labels=False) + poller = await client.begin_training(formrecognizer_multipage_storage_container_sas_url_2, use_training_labels=False) model = await poller.result() async with fr_client: @@ -468,9 +468,9 @@ def callback(raw_response, _, headers): self.assertEqual(form.model_id, model.model_id) self.assertUnlabeledFormFieldDictTransformCorrect(form.fields, actual.key_value_pairs, read_results) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, multipage2=True) - async def test_custom_form_multipage_vendor_set_labeled_transform(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_custom_form_multipage_vendor_set_labeled_transform(self, client, formrecognizer_multipage_storage_container_sas_url_2): fr_client = client.get_form_recognizer_client() responses = [] @@ -485,7 +485,7 @@ def callback(raw_response, _, headers): responses.append(form) async with client: - poller = await client.begin_training(container_sas_url, use_training_labels=True) + poller = await client.begin_training(formrecognizer_multipage_storage_container_sas_url_2, use_training_labels=True) model = await poller.result() async with fr_client: @@ -511,9 +511,9 @@ def callback(raw_response, _, headers): self.assertEqual(form.model_id, model.model_id) self.assertFormFieldsTransformCorrect(form.fields, actual.fields, read_results) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, selection_marks=True) - async def test_custom_form_selection_mark(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_custom_form_selection_mark(self, client, formrecognizer_selection_mark_storage_container_sas_url): fr_client = client.get_form_recognizer_client() with open(self.selection_form_pdf, "rb") as fd: myfile = fd.read() @@ -527,7 +527,7 @@ def callback(raw_response, _, headers): responses.append(form) async with client: - poller = await client.begin_training(container_sas_url, use_training_labels=True) + poller = await client.begin_training(formrecognizer_selection_mark_storage_container_sas_url, use_training_labels=True) model = await poller.result() poller = await fr_client.begin_recognize_custom_forms( diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_custom_forms_from_url.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_custom_forms_from_url.py index 82efc23d540c9..12ddf48d0ada7 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_custom_forms_from_url.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_custom_forms_from_url.py @@ -11,18 +11,18 @@ from azure.ai.formrecognizer import FormRecognizerClient, FormTrainingClient from azure.ai.formrecognizer._generated.models import AnalyzeOperationResult from azure.ai.formrecognizer._response_handlers import prepare_form_result -from testcase import FormRecognizerTest, GlobalFormRecognizerAccountPreparer -from testcase import GlobalClientPreparer as _GlobalClientPreparer - +from testcase import FormRecognizerTest +from preparers import GlobalClientPreparer as _GlobalClientPreparer +from preparers import FormRecognizerPreparer GlobalClientPreparer = functools.partial(_GlobalClientPreparer, FormTrainingClient) class TestCustomFormsFromUrl(FormRecognizerTest): - @GlobalFormRecognizerAccountPreparer() - def test_custom_forms_encoded_url(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential(form_recognizer_account_key)) + @FormRecognizerPreparer() + def test_custom_forms_encoded_url(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormRecognizerClient(formrecognizer_test_endpoint, AzureKeyCredential(formrecognizer_test_api_key)) try: poller = client.begin_recognize_custom_forms_from_url( model_id="00000000-0000-0000-0000-000000000000", @@ -31,40 +31,40 @@ def test_custom_forms_encoded_url(self, resource_group, location, form_recognize except HttpResponseError as e: self.assertIn("https://fakeuri.com/blank%20space", e.response.request.body) - @GlobalFormRecognizerAccountPreparer() - def test_custom_form_none_model_id(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential(form_recognizer_account_key)) + @FormRecognizerPreparer() + def test_custom_form_none_model_id(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormRecognizerClient(formrecognizer_test_endpoint, AzureKeyCredential(formrecognizer_test_api_key)) with self.assertRaises(ValueError): client.begin_recognize_custom_forms_from_url(model_id=None, form_url="https://badurl.jpg") - @GlobalFormRecognizerAccountPreparer() - def test_custom_form_empty_model_id(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential(form_recognizer_account_key)) + @FormRecognizerPreparer() + def test_custom_form_empty_model_id(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormRecognizerClient(formrecognizer_test_endpoint, AzureKeyCredential(formrecognizer_test_api_key)) with self.assertRaises(ValueError): client.begin_recognize_custom_forms_from_url(model_id="", form_url="https://badurl.jpg") - @GlobalFormRecognizerAccountPreparer() - def test_custom_form_url_bad_endpoint(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): + @FormRecognizerPreparer() + def test_custom_form_url_bad_endpoint(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): with self.assertRaises(ServiceRequestError): - client = FormRecognizerClient("http://notreal.azure.com", AzureKeyCredential(form_recognizer_account_key)) + client = FormRecognizerClient("http://notreal.azure.com", AzureKeyCredential(formrecognizer_test_api_key)) result = client.begin_recognize_custom_forms_from_url(model_id="xx", form_url=self.form_url_jpg) - @GlobalFormRecognizerAccountPreparer() - def test_url_authentication_bad_key(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential("xxxx")) + @FormRecognizerPreparer() + def test_url_authentication_bad_key(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormRecognizerClient(formrecognizer_test_endpoint, AzureKeyCredential("xxxx")) with self.assertRaises(ClientAuthenticationError): result = client.begin_recognize_custom_forms_from_url(model_id="xx", form_url=self.form_url_jpg) - @GlobalFormRecognizerAccountPreparer() - def test_passing_bad_url(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential(form_recognizer_account_key)) + @FormRecognizerPreparer() + def test_passing_bad_url(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormRecognizerClient(formrecognizer_test_endpoint, AzureKeyCredential(formrecognizer_test_api_key)) with self.assertRaises(HttpResponseError): poller = client.begin_recognize_custom_forms_from_url(model_id="xx", form_url="https://badurl.jpg") - @GlobalFormRecognizerAccountPreparer() - def test_pass_stream_into_url(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential(form_recognizer_account_key)) + @FormRecognizerPreparer() + def test_pass_stream_into_url(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormRecognizerClient(formrecognizer_test_endpoint, AzureKeyCredential(formrecognizer_test_api_key)) with open(self.unsupported_content_py, "rb") as fd: with self.assertRaises(HttpResponseError): @@ -73,12 +73,12 @@ def test_pass_stream_into_url(self, resource_group, location, form_recognizer_ac form_url=fd, ) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) - def test_custom_form_bad_url(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_custom_form_bad_url(self, client, formrecognizer_storage_container_sas_url): fr_client = client.get_form_recognizer_client() - poller = client.begin_training(container_sas_url, use_training_labels=True) + poller = client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=True) model = poller.result() with pytest.raises(HttpResponseError) as e: @@ -90,12 +90,12 @@ def test_custom_form_bad_url(self, client, container_sas_url): self.assertEqual(e.value.error.code, "2003") self.assertIsNotNone(e.value.error.message) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) - def test_custom_form_unlabeled(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_custom_form_unlabeled(self, client, formrecognizer_storage_container_sas_url): fr_client = client.get_form_recognizer_client() - poller = client.begin_training(container_sas_url, use_training_labels=False) + poller = client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=False) model = poller.result() poller = fr_client.begin_recognize_custom_forms_from_url(model.model_id, self.form_url_jpg) @@ -104,12 +104,13 @@ def test_custom_form_unlabeled(self, client, container_sas_url): self.assertEqual(form[0].form_type, "form-0") self.assertUnlabeledRecognizedFormHasValues(form[0], model) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, multipage=True, blob_sas_url=True) - def test_form_multipage_unlabeled(self, client, container_sas_url, blob_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_form_multipage_unlabeled(self, client, formrecognizer_multipage_storage_container_sas_url): + blob_sas_url = self.get_blob_url(formrecognizer_multipage_storage_container_sas_url, "multipage-training-data", "multipage_invoice1.pdf") fr_client = client.get_form_recognizer_client() - poller = client.begin_training(container_sas_url, use_training_labels=False) + poller = client.begin_training(formrecognizer_multipage_storage_container_sas_url, use_training_labels=False) model = poller.result() poller = fr_client.begin_recognize_custom_forms_from_url( @@ -124,12 +125,12 @@ def test_form_multipage_unlabeled(self, client, container_sas_url, blob_sas_url) self.assertEqual(form.form_type, "form-0") self.assertUnlabeledRecognizedFormHasValues(form, model) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) - def test_custom_form_labeled(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_custom_form_labeled(self, client, formrecognizer_storage_container_sas_url): fr_client = client.get_form_recognizer_client() - poller = client.begin_training(container_sas_url, use_training_labels=True, model_name="labeled") + poller = client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=True, model_name="labeled") model = poller.result() poller = fr_client.begin_recognize_custom_forms_from_url(model.model_id, self.form_url_jpg) @@ -138,13 +139,14 @@ def test_custom_form_labeled(self, client, container_sas_url): self.assertEqual(form[0].form_type, "custom:labeled") self.assertLabeledRecognizedFormHasValues(form[0], model) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, multipage=True, blob_sas_url=True) - def test_form_multipage_labeled(self, client, container_sas_url, blob_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_form_multipage_labeled(self, client, formrecognizer_multipage_storage_container_sas_url): + blob_sas_url = self.get_blob_url(formrecognizer_multipage_storage_container_sas_url, "multipage-training-data", "multipage_invoice1.pdf") fr_client = client.get_form_recognizer_client() poller = client.begin_training( - container_sas_url, + formrecognizer_multipage_storage_container_sas_url, use_training_labels=True ) model = poller.result() @@ -159,12 +161,12 @@ def test_form_multipage_labeled(self, client, container_sas_url, blob_sas_url): self.assertEqual(form.form_type, "custom:"+model.model_id) self.assertLabeledRecognizedFormHasValues(form, model) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) - def test_custom_form_unlabeled_transform(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_custom_form_unlabeled_transform(self, client, formrecognizer_storage_container_sas_url): fr_client = client.get_form_recognizer_client() - poller = client.begin_training(container_sas_url, use_training_labels=False) + poller = client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=False) model = poller.result() responses = [] @@ -195,12 +197,12 @@ def callback(raw_response, _, headers): self.assertIsNotNone(recognized_form[0].model_id) self.assertUnlabeledFormFieldDictTransformCorrect(recognized_form[0].fields, actual_fields, read_results) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, multipage=True, blob_sas_url=True) - def test_custom_form_multipage_unlabeled_transform(self, client, container_sas_url, blob_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_custom_form_multipage_unlabeled_transform(self, client, formrecognizer_multipage_storage_container_sas_url): fr_client = client.get_form_recognizer_client() - - poller = client.begin_training(container_sas_url, use_training_labels=False) + blob_sas_url = self.get_blob_url(formrecognizer_multipage_storage_container_sas_url, "multipage-training-data", "multipage_invoice1.pdf") + poller = client.begin_training(formrecognizer_multipage_storage_container_sas_url, use_training_labels=False) model = poller.result() responses = [] @@ -233,12 +235,12 @@ def callback(raw_response, _, headers): self.assertUnlabeledFormFieldDictTransformCorrect(form.fields, actual.key_value_pairs, read_results) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) - def test_form_labeled_transform(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_form_labeled_transform(self, client, formrecognizer_storage_container_sas_url): fr_client = client.get_form_recognizer_client() - poller = client.begin_training(container_sas_url, use_training_labels=True) + poller = client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=True) model = poller.result() responses = [] @@ -269,12 +271,12 @@ def callback(raw_response, _, headers): self.assertIsNotNone(recognized_form[0].model_id) self.assertFormFieldsTransformCorrect(recognized_form[0].fields, actual_fields, read_results) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, multipage=True, blob_sas_url=True) - def test_custom_form_multipage_labeled_transform(self, client, container_sas_url, blob_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_custom_form_multipage_labeled_transform(self, client, formrecognizer_multipage_storage_container_sas_url): fr_client = client.get_form_recognizer_client() - - poller = client.begin_training(container_sas_url, use_training_labels=True) + blob_sas_url = self.get_blob_url(formrecognizer_multipage_storage_container_sas_url, "multipage-training-data", "multipage_invoice1.pdf") + poller = client.begin_training(formrecognizer_multipage_storage_container_sas_url, use_training_labels=True) model = poller.result() responses = [] @@ -307,13 +309,13 @@ def callback(raw_response, _, headers): self.assertEqual(form.model_id, model.model_id) self.assertFormFieldsTransformCorrect(form.fields, actual.fields, read_results) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) + @FormRecognizerPreparer() + @GlobalClientPreparer() @pytest.mark.live_test_only - def test_custom_form_continuation_token(self, client, container_sas_url): + def test_custom_form_continuation_token(self, client, formrecognizer_storage_container_sas_url): fr_client = client.get_form_recognizer_client() - training_poller = client.begin_training(container_sas_url, use_training_labels=False) + training_poller = client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=False) model = training_poller.result() initial_poller = fr_client.begin_recognize_custom_forms_from_url( @@ -331,12 +333,12 @@ def test_custom_form_continuation_token(self, client, container_sas_url): self.assertIsNotNone(result) initial_poller.wait() # necessary so azure-devtools doesn't throw assertion error - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, multipage2=True, blob_sas_url=True) - def test_custom_form_multipage_vendor_set_unlabeled_transform(self, client, container_sas_url, blob_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_custom_form_multipage_vendor_set_unlabeled_transform(self, client, formrecognizer_multipage_storage_container_sas_url_2): fr_client = client.get_form_recognizer_client() - - poller = client.begin_training(container_sas_url, use_training_labels=False) + blob_sas_url = self.get_blob_url(formrecognizer_multipage_storage_container_sas_url_2, "multipage-vendor-forms", "multi1.pdf") + poller = client.begin_training(formrecognizer_multipage_storage_container_sas_url_2, use_training_labels=False) model = poller.result() responses = [] @@ -368,12 +370,12 @@ def callback(raw_response, _, headers): self.assertEqual(form.model_id, model.model_id) self.assertUnlabeledFormFieldDictTransformCorrect(form.fields, actual.key_value_pairs, read_results) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, multipage2=True, blob_sas_url=True) - def test_custom_form_multipage_vendor_set_labeled_transform(self, client, container_sas_url, blob_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_custom_form_multipage_vendor_set_labeled_transform(self, client, formrecognizer_multipage_storage_container_sas_url_2): fr_client = client.get_form_recognizer_client() - - poller = client.begin_training(container_sas_url, use_training_labels=True) + blob_sas_url = self.get_blob_url(formrecognizer_multipage_storage_container_sas_url_2, "multipage-vendor-forms", "multi1.pdf") + poller = client.begin_training(formrecognizer_multipage_storage_container_sas_url_2, use_training_labels=True) model = poller.result() responses = [] @@ -406,12 +408,12 @@ def callback(raw_response, _, headers): self.assertEqual(form.model_id, model.model_id) self.assertFormFieldsTransformCorrect(form.fields, actual.fields, read_results) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, selection_marks=True) - def test_custom_form_selection_mark(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_custom_form_selection_mark(self, client, formrecognizer_selection_mark_storage_container_sas_url): fr_client = client.get_form_recognizer_client() - poller = client.begin_training(container_sas_url, use_training_labels=True) + poller = client.begin_training(formrecognizer_selection_mark_storage_container_sas_url, use_training_labels=True) model = poller.result() responses = [] diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_custom_forms_from_url_async.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_custom_forms_from_url_async.py index bb899f7003242..11c210abe4837 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_custom_forms_from_url_async.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_custom_forms_from_url_async.py @@ -11,9 +11,9 @@ from azure.ai.formrecognizer.aio import FormRecognizerClient, FormTrainingClient from azure.ai.formrecognizer._generated.models import AnalyzeOperationResult from azure.ai.formrecognizer._response_handlers import prepare_form_result -from testcase import GlobalFormRecognizerAccountPreparer +from preparers import FormRecognizerPreparer from asynctestcase import AsyncFormRecognizerTest -from testcase import GlobalClientPreparer as _GlobalClientPreparer +from preparers import GlobalClientPreparer as _GlobalClientPreparer GlobalClientPreparer = functools.partial(_GlobalClientPreparer, FormTrainingClient) @@ -21,9 +21,9 @@ class TestCustomFormsFromUrlAsync(AsyncFormRecognizerTest): - @GlobalFormRecognizerAccountPreparer() - async def test_custom_forms_encoded_url(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential(form_recognizer_account_key)) + @FormRecognizerPreparer() + async def test_custom_forms_encoded_url(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormRecognizerClient(formrecognizer_test_endpoint, AzureKeyCredential(formrecognizer_test_api_key)) with pytest.raises(HttpResponseError) as e: async with client: poller = await client.begin_recognize_custom_forms_from_url( @@ -32,39 +32,39 @@ async def test_custom_forms_encoded_url(self, resource_group, location, form_rec ) self.assertIn("https://fakeuri.com/blank%20space", e.value.response.request.body) - @GlobalFormRecognizerAccountPreparer() - async def test_custom_form_none_model_id(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential(form_recognizer_account_key)) + @FormRecognizerPreparer() + async def test_custom_form_none_model_id(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormRecognizerClient(formrecognizer_test_endpoint, AzureKeyCredential(formrecognizer_test_api_key)) with self.assertRaises(ValueError): async with client: await client.begin_recognize_custom_forms_from_url(model_id=None, form_url="https://badurl.jpg") - @GlobalFormRecognizerAccountPreparer() - async def test_custom_form_empty_model_id(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential(form_recognizer_account_key)) + @FormRecognizerPreparer() + async def test_custom_form_empty_model_id(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormRecognizerClient(formrecognizer_test_endpoint, AzureKeyCredential(formrecognizer_test_api_key)) with self.assertRaises(ValueError): async with client: await client.begin_recognize_custom_forms_from_url(model_id="", form_url="https://badurl.jpg") - @GlobalFormRecognizerAccountPreparer() - async def test_custom_form_url_bad_endpoint(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): + @FormRecognizerPreparer() + async def test_custom_form_url_bad_endpoint(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): with self.assertRaises(ServiceRequestError): - client = FormRecognizerClient("http://notreal.azure.com", AzureKeyCredential(form_recognizer_account_key)) + client = FormRecognizerClient("http://notreal.azure.com", AzureKeyCredential(formrecognizer_test_api_key)) async with client: poller = await client.begin_recognize_custom_forms_from_url(model_id="xx", form_url=self.form_url_jpg) result = await poller.result() - @GlobalFormRecognizerAccountPreparer() - async def test_url_authentication_bad_key(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential("xxxx")) + @FormRecognizerPreparer() + async def test_url_authentication_bad_key(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormRecognizerClient(formrecognizer_test_endpoint, AzureKeyCredential("xxxx")) with self.assertRaises(ClientAuthenticationError): async with client: poller = await client.begin_recognize_custom_forms_from_url(model_id="xx", form_url=self.form_url_jpg) result = await poller.result() - @GlobalFormRecognizerAccountPreparer() - async def test_passing_bad_url(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential(form_recognizer_account_key)) + @FormRecognizerPreparer() + async def test_passing_bad_url(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormRecognizerClient(formrecognizer_test_endpoint, AzureKeyCredential(formrecognizer_test_api_key)) with pytest.raises(HttpResponseError) as e: async with client: @@ -73,9 +73,9 @@ async def test_passing_bad_url(self, resource_group, location, form_recognizer_a self.assertIsNotNone(e.value.error.code) self.assertIsNotNone(e.value.error.message) - @GlobalFormRecognizerAccountPreparer() - async def test_pass_stream_into_url(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential(form_recognizer_account_key)) + @FormRecognizerPreparer() + async def test_pass_stream_into_url(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormRecognizerClient(formrecognizer_test_endpoint, AzureKeyCredential(formrecognizer_test_api_key)) with open(self.unsupported_content_py, "rb") as fd: with self.assertRaises(HttpResponseError): @@ -86,13 +86,13 @@ async def test_pass_stream_into_url(self, resource_group, location, form_recogni ) result = await poller.result() - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) - async def test_form_bad_url(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_form_bad_url(self, client, formrecognizer_storage_container_sas_url): fr_client = client.get_form_recognizer_client() async with client: - training_poller = await client.begin_training(container_sas_url, use_training_labels=False) + training_poller = await client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=False) model = await training_poller.result() with pytest.raises(HttpResponseError) as e: @@ -105,13 +105,13 @@ async def test_form_bad_url(self, client, container_sas_url): self.assertEqual(e.value.error.code, "2003") self.assertIsNotNone(e.value.error.message) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) - async def test_form_unlabeled(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_form_unlabeled(self, client, formrecognizer_storage_container_sas_url): fr_client = client.get_form_recognizer_client() async with client: - training_poller = await client.begin_training(container_sas_url, use_training_labels=False) + training_poller = await client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=False) model = await training_poller.result() async with fr_client: @@ -121,13 +121,13 @@ async def test_form_unlabeled(self, client, container_sas_url): self.assertEqual(form[0].form_type, "form-0") self.assertUnlabeledRecognizedFormHasValues(form[0], model) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, multipage=True, blob_sas_url=True) - async def test_custom_form_multipage_unlabeled(self, client, container_sas_url, blob_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_custom_form_multipage_unlabeled(self, client, formrecognizer_multipage_storage_container_sas_url): fr_client = client.get_form_recognizer_client() - + blob_sas_url = self.get_blob_url(formrecognizer_multipage_storage_container_sas_url, "multipage-training-data", "multipage_invoice1.pdf") async with client: - training_poller = await client.begin_training(container_sas_url, use_training_labels=False) + training_poller = await client.begin_training(formrecognizer_multipage_storage_container_sas_url, use_training_labels=False) model = await training_poller.result() async with fr_client: @@ -143,13 +143,13 @@ async def test_custom_form_multipage_unlabeled(self, client, container_sas_url, self.assertEqual(form.form_type, "form-0") self.assertUnlabeledRecognizedFormHasValues(form, model) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) - async def test_form_labeled(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_form_labeled(self, client, formrecognizer_storage_container_sas_url): fr_client = client.get_form_recognizer_client() async with client: - training_poller = await client.begin_training(container_sas_url, use_training_labels=True, model_name="labeled") + training_poller = await client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=True, model_name="labeled") model = await training_poller.result() async with fr_client: @@ -159,14 +159,14 @@ async def test_form_labeled(self, client, container_sas_url): self.assertEqual(form[0].form_type, "custom:labeled") self.assertLabeledRecognizedFormHasValues(form[0], model) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, multipage=True, blob_sas_url=True) - async def test_form_multipage_labeled(self, client, container_sas_url, blob_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_form_multipage_labeled(self, client, formrecognizer_multipage_storage_container_sas_url): fr_client = client.get_form_recognizer_client() - + blob_sas_url = self.get_blob_url(formrecognizer_multipage_storage_container_sas_url, "multipage-training-data", "multipage_invoice1.pdf") async with client: training_poller = await client.begin_training( - container_sas_url, + formrecognizer_multipage_storage_container_sas_url, use_training_labels=True ) model = await training_poller.result() @@ -182,9 +182,9 @@ async def test_form_multipage_labeled(self, client, container_sas_url, blob_sas_ self.assertEqual(form.form_type, "custom:"+model.model_id) self.assertLabeledRecognizedFormHasValues(form, model) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) - async def test_form_unlabeled_transform(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_form_unlabeled_transform(self, client, formrecognizer_storage_container_sas_url): fr_client = client.get_form_recognizer_client() responses = [] @@ -195,7 +195,7 @@ def callback(raw_response, _, headers): responses.append(form) async with client: - training_poller = await client.begin_training(container_sas_url, use_training_labels=False) + training_poller = await client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=False) model = await training_poller.result() async with fr_client: @@ -220,11 +220,11 @@ def callback(raw_response, _, headers): self.assertIsNotNone(recognized_form[0].model_id) self.assertUnlabeledFormFieldDictTransformCorrect(recognized_form[0].fields, actual_fields, read_results) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, multipage=True, blob_sas_url=True) - async def test_multipage_unlabeled_transform(self, client, container_sas_url, blob_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_multipage_unlabeled_transform(self, client, formrecognizer_multipage_storage_container_sas_url): fr_client = client.get_form_recognizer_client() - + blob_sas_url = self.get_blob_url(formrecognizer_multipage_storage_container_sas_url, "multipage-training-data", "multipage_invoice1.pdf") responses = [] def callback(raw_response, _, headers): @@ -234,7 +234,7 @@ def callback(raw_response, _, headers): responses.append(form) async with client: - training_poller = await client.begin_training(container_sas_url, use_training_labels=False) + training_poller = await client.begin_training(formrecognizer_multipage_storage_container_sas_url, use_training_labels=False) model = await training_poller.result() async with fr_client: @@ -260,9 +260,9 @@ def callback(raw_response, _, headers): self.assertEqual(form.model_id, model.model_id) self.assertUnlabeledFormFieldDictTransformCorrect(form.fields, actual.key_value_pairs, read_results) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) - async def test_form_labeled_transform(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_form_labeled_transform(self, client, formrecognizer_storage_container_sas_url): fr_client = client.get_form_recognizer_client() responses = [] @@ -274,7 +274,7 @@ def callback(raw_response, _, headers): responses.append(form) async with client: - training_poller = await client.begin_training(container_sas_url, use_training_labels=True) + training_poller = await client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=True) model = await training_poller.result() async with fr_client: @@ -299,11 +299,11 @@ def callback(raw_response, _, headers): self.assertIsNotNone(recognized_form[0].model_id) self.assertFormFieldsTransformCorrect(recognized_form[0].fields, actual_fields, read_results) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, multipage=True, blob_sas_url=True) - async def test_multipage_labeled_transform(self, client, container_sas_url, blob_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_multipage_labeled_transform(self, client, formrecognizer_multipage_storage_container_sas_url): fr_client = client.get_form_recognizer_client() - + blob_sas_url = self.get_blob_url(formrecognizer_multipage_storage_container_sas_url, "multipage-training-data", "multipage_invoice1.pdf") responses = [] def callback(raw_response, _, headers): @@ -313,7 +313,7 @@ def callback(raw_response, _, headers): responses.append(form) async with client: - training_poller = await client.begin_training(container_sas_url, use_training_labels=True) + training_poller = await client.begin_training(formrecognizer_multipage_storage_container_sas_url, use_training_labels=True) model = await training_poller.result() async with fr_client: @@ -340,14 +340,14 @@ def callback(raw_response, _, headers): self.assertEqual(form.model_id, model.model_id) self.assertFormFieldsTransformCorrect(form.fields, actual.fields, read_results) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) + @FormRecognizerPreparer() + @GlobalClientPreparer() @pytest.mark.live_test_only - async def test_custom_form_continuation_token(self, client, container_sas_url): + async def test_custom_form_continuation_token(self, client, formrecognizer_storage_container_sas_url): fr_client = client.get_form_recognizer_client() async with client: - poller = await client.begin_training(container_sas_url, use_training_labels=False) + poller = await client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=False) model = await poller.result() async with fr_client: @@ -365,11 +365,11 @@ async def test_custom_form_continuation_token(self, client, container_sas_url): self.assertIsNotNone(result) await initial_poller.wait() # necessary so azure-devtools doesn't throw assertion error - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, multipage2=True, blob_sas_url=True) - async def test_custom_form_multipage_vendor_set_unlabeled_transform(self, client, container_sas_url, blob_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_custom_form_multipage_vendor_set_unlabeled_transform(self, client, formrecognizer_multipage_storage_container_sas_url_2): fr_client = client.get_form_recognizer_client() - + blob_sas_url = self.get_blob_url(formrecognizer_multipage_storage_container_sas_url_2, "multipage-vendor-forms", "multi1.pdf") responses = [] def callback(raw_response, _, headers): @@ -379,7 +379,7 @@ def callback(raw_response, _, headers): responses.append(form) async with client: - poller = await client.begin_training(container_sas_url, use_training_labels=False) + poller = await client.begin_training(formrecognizer_multipage_storage_container_sas_url_2, use_training_labels=False) model = await poller.result() async with fr_client: @@ -403,11 +403,11 @@ def callback(raw_response, _, headers): self.assertEqual(form.model_id, model.model_id) self.assertUnlabeledFormFieldDictTransformCorrect(form.fields, actual.key_value_pairs, read_results) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, multipage2=True, blob_sas_url=True) - async def test_custom_form_multipage_vendor_set_labeled_transform(self, client, container_sas_url, blob_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_custom_form_multipage_vendor_set_labeled_transform(self, client, formrecognizer_multipage_storage_container_sas_url_2): fr_client = client.get_form_recognizer_client() - + blob_sas_url = self.get_blob_url(formrecognizer_multipage_storage_container_sas_url_2, "multipage-vendor-forms", "multi1.pdf") responses = [] def callback(raw_response, _, headers): @@ -417,7 +417,7 @@ def callback(raw_response, _, headers): responses.append(form) async with client: - poller = await client.begin_training(container_sas_url, use_training_labels=True) + poller = await client.begin_training(formrecognizer_multipage_storage_container_sas_url_2, use_training_labels=True) model = await poller.result() async with fr_client: @@ -443,9 +443,9 @@ def callback(raw_response, _, headers): self.assertEqual(form.model_id, model.model_id) self.assertFormFieldsTransformCorrect(form.fields, actual.fields, read_results) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, selection_marks=True) - async def test_custom_form_selection_mark(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_custom_form_selection_mark(self, client, formrecognizer_selection_mark_storage_container_sas_url): fr_client = client.get_form_recognizer_client() responses = [] @@ -457,7 +457,7 @@ def callback(raw_response, _, headers): responses.append(form) async with client: - poller = await client.begin_training(container_sas_url, use_training_labels=True) + poller = await client.begin_training(formrecognizer_selection_mark_storage_container_sas_url, use_training_labels=True) model = await poller.result() diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_invoice.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_invoice.py index 12b337997daee..0190cb227bafb 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_invoice.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_invoice.py @@ -13,24 +13,24 @@ from azure.ai.formrecognizer._generated.models import AnalyzeOperationResult from azure.ai.formrecognizer._response_handlers import prepare_prebuilt_models from azure.ai.formrecognizer import FormRecognizerClient, FormContentType, FormRecognizerApiVersion -from testcase import FormRecognizerTest, GlobalFormRecognizerAccountPreparer -from testcase import GlobalClientPreparer as _GlobalClientPreparer - +from testcase import FormRecognizerTest +from preparers import GlobalClientPreparer as _GlobalClientPreparer +from preparers import FormRecognizerPreparer GlobalClientPreparer = functools.partial(_GlobalClientPreparer, FormRecognizerClient) class TestInvoice(FormRecognizerTest): - @GlobalFormRecognizerAccountPreparer() - def test_invoice_bad_endpoint(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): + @FormRecognizerPreparer() + def test_invoice_bad_endpoint(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): with open(self.invoice_pdf, "rb") as fd: myfile = fd.read() with self.assertRaises(ServiceRequestError): - client = FormRecognizerClient("http://notreal.azure.com", AzureKeyCredential(form_recognizer_account_key)) + client = FormRecognizerClient("http://notreal.azure.com", AzureKeyCredential(formrecognizer_test_api_key)) poller = client.begin_recognize_invoices(myfile) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_authentication_successful_key(self, client): with open(self.invoice_pdf, "rb") as fd: @@ -38,13 +38,13 @@ def test_authentication_successful_key(self, client): poller = client.begin_recognize_invoices(myfile) result = poller.result() - @GlobalFormRecognizerAccountPreparer() - def test_authentication_bad_key(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential("xxxx")) + @FormRecognizerPreparer() + def test_authentication_bad_key(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormRecognizerClient(formrecognizer_test_endpoint, AzureKeyCredential("xxxx")) with self.assertRaises(ClientAuthenticationError): poller = client.begin_recognize_invoices(b"xx", content_type="image/jpeg") - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_passing_enum_content_type(self, client): with open(self.invoice_pdf, "rb") as fd: @@ -56,7 +56,7 @@ def test_passing_enum_content_type(self, client): result = poller.result() self.assertIsNotNone(result) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_damaged_file_passed_as_bytes(self, client): damaged_pdf = b"\x25\x50\x44\x46\x55\x55\x55" # still has correct bytes to be recognized as PDF @@ -65,7 +65,7 @@ def test_damaged_file_passed_as_bytes(self, client): damaged_pdf ) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_damaged_file_bytes_fails_autodetect_content_type(self, client): damaged_pdf = b"\x50\x44\x46\x55\x55\x55" # doesn't match any magic file numbers @@ -74,7 +74,7 @@ def test_damaged_file_bytes_fails_autodetect_content_type(self, client): damaged_pdf ) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_damaged_file_passed_as_bytes_io(self, client): damaged_pdf = BytesIO(b"\x25\x50\x44\x46\x55\x55\x55") # still has correct bytes to be recognized as PDF @@ -83,7 +83,7 @@ def test_damaged_file_passed_as_bytes_io(self, client): damaged_pdf ) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_damaged_file_bytes_io_fails_autodetect(self, client): damaged_pdf = BytesIO(b"\x50\x44\x46\x55\x55\x55") # doesn't match any magic file numbers @@ -92,7 +92,7 @@ def test_damaged_file_bytes_io_fails_autodetect(self, client): damaged_pdf ) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_blank_page(self, client): @@ -104,7 +104,7 @@ def test_blank_page(self, client): result = poller.result() self.assertIsNotNone(result) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_passing_bad_content_type_param_passed(self, client): with open(self.invoice_pdf, "rb") as fd: @@ -115,13 +115,13 @@ def test_passing_bad_content_type_param_passed(self, client): content_type="application/jpeg" ) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_passing_unsupported_url_content_type(self, client): with self.assertRaises(TypeError): poller = client.begin_recognize_invoices("https://badurl.jpg", content_type="application/json") - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_auto_detect_unsupported_stream_content(self, client): @@ -133,7 +133,7 @@ def test_auto_detect_unsupported_stream_content(self, client): myfile ) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_invoice_stream_transform_pdf(self, client): responses = [] @@ -171,7 +171,7 @@ def callback(raw_response, _, headers): # Check page metadata self.assertFormPagesTransformCorrect(invoice.pages, read_results, page_results) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_invoice_stream_transform_tiff(self, client): responses = [] @@ -209,7 +209,7 @@ def callback(raw_response, _, headers): # Check page metadata self.assertFormPagesTransformCorrect(invoice.pages, read_results, page_results) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_invoice_stream_multipage_transform_pdf(self, client): responses = [] @@ -252,7 +252,7 @@ def callback(raw_response, _, headers): self.assertFormPagesTransformCorrect(returned_model.pages, read_results, page_results) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_invoice_pdf(self, client): @@ -276,7 +276,7 @@ def test_invoice_pdf(self, client): self.assertEqual(invoice.fields.get("InvoiceTotal").value, 56651.49) self.assertEqual(invoice.fields.get("DueDate").value, date(2017, 6, 24)) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_invoice_tiff(self, client): @@ -298,7 +298,7 @@ def test_invoice_tiff(self, client): self.assertEqual(invoice.fields.get("InvoiceTotal").value, 56651.49) self.assertEqual(invoice.fields.get("DueDate").value, date(2017, 6, 24)) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_invoice_multipage_pdf(self, client): @@ -325,7 +325,7 @@ def test_invoice_multipage_pdf(self, client): self.assertEqual(remittance_address.value, '2345 Dogwood Lane Birch, Kansas 98123') self.assertEqual(remittance_address.value_data.page_number, 1) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_invoice_pdf_include_field_elements(self, client): with open(self.invoice_pdf, "rb") as fd: @@ -341,7 +341,7 @@ def test_invoice_pdf_include_field_elements(self, client): for field in invoice.fields.values(): self.assertFieldElementsHasValues(field.value_data.field_elements, invoice.page_range.first_page_number) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() @pytest.mark.live_test_only def test_invoice_continuation_token(self, client): @@ -356,7 +356,7 @@ def test_invoice_continuation_token(self, client): self.assertIsNotNone(result) initial_poller.wait() # necessary so azure-devtools doesn't throw assertion error - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer(client_kwargs={"api_version": FormRecognizerApiVersion.V2_0}) def test_invoice_v2(self, client): with open(self.invoice_pdf, "rb") as fd: @@ -365,7 +365,7 @@ def test_invoice_v2(self, client): client.begin_recognize_invoices(invoice) assert "Method 'begin_recognize_invoices' is only available for API version V2_1_PREVIEW and up" in str(e.value) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_invoice_locale_specified(self, client): with open(self.invoice_tiff, "rb") as fd: @@ -374,7 +374,7 @@ def test_invoice_locale_specified(self, client): assert 'en-US' == poller._polling_method._initial_response.http_response.request.query['locale'] poller.wait() - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_invoice_locale_error(self, client): with open(self.invoice_pdf, "rb") as fd: diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_invoice_async.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_invoice_async.py index 2f454a6524e6d..cdc30a8473e85 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_invoice_async.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_invoice_async.py @@ -15,8 +15,8 @@ from azure.ai.formrecognizer.aio import FormRecognizerClient from azure.ai.formrecognizer import FormContentType, FormRecognizerApiVersion from asynctestcase import AsyncFormRecognizerTest -from testcase import GlobalFormRecognizerAccountPreparer -from testcase import GlobalClientPreparer as _GlobalClientPreparer +from preparers import FormRecognizerPreparer +from preparers import GlobalClientPreparer as _GlobalClientPreparer GlobalClientPreparer = functools.partial(_GlobalClientPreparer, FormRecognizerClient) @@ -24,16 +24,16 @@ class TestInvoiceAsync(AsyncFormRecognizerTest): - @GlobalFormRecognizerAccountPreparer() - async def test_invoice_bad_endpoint(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): + @FormRecognizerPreparer() + async def test_invoice_bad_endpoint(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): with open(self.invoice_pdf, "rb") as fd: myfile = fd.read() with self.assertRaises(ServiceRequestError): - client = FormRecognizerClient("http://notreal.azure.com", AzureKeyCredential(form_recognizer_account_key)) + client = FormRecognizerClient("http://notreal.azure.com", AzureKeyCredential(formrecognizer_test_api_key)) async with client: poller = await client.begin_recognize_invoices(myfile) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_authentication_successful_key(self, client): with open(self.invoice_pdf, "rb") as fd: @@ -42,14 +42,14 @@ async def test_authentication_successful_key(self, client): poller = await client.begin_recognize_invoices(myfile) result = await poller.result() - @GlobalFormRecognizerAccountPreparer() - async def test_authentication_bad_key(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential("xxxx")) + @FormRecognizerPreparer() + async def test_authentication_bad_key(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormRecognizerClient(formrecognizer_test_endpoint, AzureKeyCredential("xxxx")) with self.assertRaises(ClientAuthenticationError): async with client: poller = await client.begin_recognize_invoices(b"xx", content_type="image/jpeg") - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_passing_enum_content_type(self, client): with open(self.invoice_pdf, "rb") as fd: @@ -62,7 +62,7 @@ async def test_passing_enum_content_type(self, client): result = await poller.result() self.assertIsNotNone(result) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_damaged_file_passed_as_bytes(self, client): damaged_pdf = b"\x25\x50\x44\x46\x55\x55\x55" # still has correct bytes to be recognized as PDF @@ -72,7 +72,7 @@ async def test_damaged_file_passed_as_bytes(self, client): damaged_pdf ) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_damaged_file_bytes_fails_autodetect_content_type(self, client): damaged_pdf = b"\x50\x44\x46\x55\x55\x55" # doesn't match any magic file numbers @@ -82,7 +82,7 @@ async def test_damaged_file_bytes_fails_autodetect_content_type(self, client): damaged_pdf ) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_damaged_file_passed_as_bytes_io(self, client): damaged_pdf = BytesIO(b"\x25\x50\x44\x46\x55\x55\x55") # still has correct bytes to be recognized as PDF @@ -92,7 +92,7 @@ async def test_damaged_file_passed_as_bytes_io(self, client): damaged_pdf ) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_damaged_file_bytes_io_fails_autodetect(self, client): damaged_pdf = BytesIO(b"\x50\x44\x46\x55\x55\x55") # doesn't match any magic file numbers @@ -102,7 +102,7 @@ async def test_damaged_file_bytes_io_fails_autodetect(self, client): damaged_pdf ) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_blank_page(self, client): @@ -115,7 +115,7 @@ async def test_blank_page(self, client): result = await poller.result() self.assertIsNotNone(result) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_passing_bad_content_type_param_passed(self, client): with open(self.invoice_pdf, "rb") as fd: @@ -127,14 +127,14 @@ async def test_passing_bad_content_type_param_passed(self, client): content_type="application/jpeg" ) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_passing_unsupported_url_content_type(self, client): with self.assertRaises(TypeError): async with client: poller = await client.begin_recognize_invoices("https://badurl.jpg", content_type="application/json") - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_auto_detect_unsupported_stream_content(self, client): @@ -147,7 +147,7 @@ async def test_auto_detect_unsupported_stream_content(self, client): myfile ) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_invoice_stream_transform_pdf(self, client): responses = [] @@ -186,7 +186,7 @@ def callback(raw_response, _, headers): # Check page metadata self.assertFormPagesTransformCorrect(invoice.pages, read_results, page_results) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_invoice_stream_transform_tiff(self, client): responses = [] @@ -225,7 +225,7 @@ def callback(raw_response, _, headers): # Check page metadata self.assertFormPagesTransformCorrect(invoice.pages, read_results, page_results) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_invoice_stream_multipage_transform_pdf(self, client): responses = [] @@ -269,7 +269,7 @@ def callback(raw_response, _, headers): self.assertFormPagesTransformCorrect(returned_model.pages, read_results, page_results) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_invoice_pdf(self, client): @@ -294,7 +294,7 @@ async def test_invoice_pdf(self, client): self.assertEqual(invoice.fields.get("InvoiceTotal").value, 56651.49) self.assertEqual(invoice.fields.get("DueDate").value, date(2017, 6, 24)) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_invoice_tiff(self, client): @@ -318,7 +318,7 @@ async def test_invoice_tiff(self, client): self.assertEqual(invoice.fields.get("InvoiceTotal").value, 56651.49) self.assertEqual(invoice.fields.get("DueDate").value, date(2017, 6, 24)) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_invoice_multipage_pdf(self, client): @@ -347,7 +347,7 @@ async def test_invoice_multipage_pdf(self, client): self.assertEqual(remittance_address.value, '2345 Dogwood Lane Birch, Kansas 98123') self.assertEqual(remittance_address.value_data.page_number, 1) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_invoice_pdf_include_field_elements(self, client): with open(self.invoice_pdf, "rb") as fd: @@ -365,7 +365,7 @@ async def test_invoice_pdf_include_field_elements(self, client): for field in invoice.fields.values(): self.assertFieldElementsHasValues(field.value_data.field_elements, invoice.page_range.first_page_number) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() @pytest.mark.live_test_only async def test_invoice_continuation_token(self, client): @@ -380,7 +380,7 @@ async def test_invoice_continuation_token(self, client): self.assertIsNotNone(result) await initial_poller.wait() # necessary so azure-devtools doesn't throw assertion error - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer(client_kwargs={"api_version": FormRecognizerApiVersion.V2_0}) async def test_invoice_v2(self, client): with open(self.invoice_pdf, "rb") as fd: @@ -390,7 +390,7 @@ async def test_invoice_v2(self, client): await client.begin_recognize_invoices(invoice) assert "Method 'begin_recognize_invoices' is only available for API version V2_1_PREVIEW and up" in str(e.value) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_invoice_locale_specified(self, client): with open(self.invoice_tiff, "rb") as fd: @@ -400,7 +400,7 @@ async def test_invoice_locale_specified(self, client): assert 'en-US' == poller._polling_method._initial_response.http_response.request.query['locale'] await poller.wait() - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_invoice_locale_error(self, client): with open(self.invoice_pdf, "rb") as fd: diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_invoice_from_url.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_invoice_from_url.py index 99f48b0f5b99a..dc86f3ffdc75e 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_invoice_from_url.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_invoice_from_url.py @@ -13,18 +13,18 @@ from azure.ai.formrecognizer._generated.models import AnalyzeOperationResult from azure.ai.formrecognizer._response_handlers import prepare_prebuilt_models from azure.ai.formrecognizer import FormRecognizerClient, FormContentType, FormRecognizerApiVersion -from testcase import FormRecognizerTest, GlobalFormRecognizerAccountPreparer -from testcase import GlobalClientPreparer as _GlobalClientPreparer - +from testcase import FormRecognizerTest +from preparers import GlobalClientPreparer as _GlobalClientPreparer +from preparers import FormRecognizerPreparer GlobalClientPreparer = functools.partial(_GlobalClientPreparer, FormRecognizerClient) class TestInvoiceFromUrl(FormRecognizerTest): - @GlobalFormRecognizerAccountPreparer() - def test_polling_interval(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential(form_recognizer_account_key), polling_interval=7) + @FormRecognizerPreparer() + def test_polling_interval(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormRecognizerClient(formrecognizer_test_endpoint, AzureKeyCredential(formrecognizer_test_api_key), polling_interval=7) self.assertEqual(client._client._config.polling_interval, 7) poller = client.begin_recognize_invoices_from_url(self.invoice_url_pdf, polling_interval=6) @@ -34,7 +34,7 @@ def test_polling_interval(self, resource_group, location, form_recognizer_accoun poller2.wait() self.assertEqual(poller2._polling_method._timeout, 7) # goes back to client default - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_invoice_encoded_url(self, client): try: @@ -42,38 +42,38 @@ def test_invoice_encoded_url(self, client): except HttpResponseError as e: self.assertIn("https://fakeuri.com/blank%20space", e.response.request.body) - @GlobalFormRecognizerAccountPreparer() - def test_invoice_url_bad_endpoint(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): + @FormRecognizerPreparer() + def test_invoice_url_bad_endpoint(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): with self.assertRaises(ServiceRequestError): - client = FormRecognizerClient("http://notreal.azure.com", AzureKeyCredential(form_recognizer_account_key)) + client = FormRecognizerClient("http://notreal.azure.com", AzureKeyCredential(formrecognizer_test_api_key)) poller = client.begin_recognize_invoices_from_url(self.invoice_url_pdf) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_authentication_successful_key(self, client): poller = client.begin_recognize_invoices_from_url(self.invoice_url_pdf) result = poller.result() - @GlobalFormRecognizerAccountPreparer() - def test_authentication_bad_key(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential("xxxx")) + @FormRecognizerPreparer() + def test_authentication_bad_key(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormRecognizerClient(formrecognizer_test_endpoint, AzureKeyCredential("xxxx")) with self.assertRaises(ClientAuthenticationError): poller = client.begin_recognize_invoices_from_url(self.invoice_url_tiff) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_invoice_bad_url(self, client): with self.assertRaises(HttpResponseError): poller = client.begin_recognize_invoices_from_url("https://badurl.jpg") - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_invoice_url_pass_stream(self, client): with open(self.invoice_tiff, "rb") as invoice: with self.assertRaises(HttpResponseError): poller = client.begin_recognize_invoices_from_url(invoice) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_invoice_url_transform_pdf(self, client): responses = [] @@ -108,7 +108,7 @@ def callback(raw_response, _, headers): # Check page metadata self.assertFormPagesTransformCorrect(invoice.pages, read_results, page_results) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_invoice_url_transform_tiff(self, client): responses = [] @@ -143,7 +143,7 @@ def callback(raw_response, _, headers): # Check page metadata self.assertFormPagesTransformCorrect(invoice.pages, read_results, page_results) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_invoice_url_multipage_transform_pdf(self, client): responses = [] @@ -183,7 +183,7 @@ def callback(raw_response, _, headers): self.assertFormPagesTransformCorrect(returned_model.pages, read_results, page_results) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_invoice_pdf(self, client): poller = client.begin_recognize_invoices_from_url(self.invoice_url_pdf) @@ -203,7 +203,7 @@ def test_invoice_pdf(self, client): self.assertEqual(invoice.fields.get("InvoiceTotal").value, 56651.49) self.assertEqual(invoice.fields.get("DueDate").value, date(2017, 6, 24)) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_invoice_tiff(self, client): poller = client.begin_recognize_invoices_from_url(self.invoice_url_tiff) @@ -223,7 +223,7 @@ def test_invoice_tiff(self, client): self.assertEqual(invoice.fields.get("InvoiceTotal").value, 56651.49) self.assertEqual(invoice.fields.get("DueDate").value, date(2017, 6, 24)) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_invoice_multipage_pdf(self, client): @@ -248,7 +248,7 @@ def test_invoice_multipage_pdf(self, client): self.assertEqual(remittance_address.value, '2345 Dogwood Lane Birch, Kansas 98123') self.assertEqual(remittance_address.value_data.page_number, 1) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_invoice_pdf_include_field_elements(self, client): poller = client.begin_recognize_invoices_from_url(self.invoice_url_pdf, include_field_elements=True) @@ -262,7 +262,7 @@ def test_invoice_pdf_include_field_elements(self, client): for field in invoice.fields.values(): self.assertFieldElementsHasValues(field.value_data.field_elements, invoice.page_range.first_page_number) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() @pytest.mark.live_test_only def test_invoice_continuation_token(self, client): @@ -274,21 +274,21 @@ def test_invoice_continuation_token(self, client): self.assertIsNotNone(result) initial_poller.wait() # necessary so azure-devtools doesn't throw assertion error - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer(client_kwargs={"api_version": FormRecognizerApiVersion.V2_0}) def test_invoice_v2(self, client): with pytest.raises(ValueError) as e: client.begin_recognize_invoices_from_url(self.invoice_url_tiff) assert "Method 'begin_recognize_invoices_from_url' is only available for API version V2_1_PREVIEW and up" in str(e.value) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_invoice_locale_specified(self, client): poller = client.begin_recognize_invoices_from_url(self.invoice_url_pdf, locale="en-US") assert 'en-US' == poller._polling_method._initial_response.http_response.request.query['locale'] poller.wait() - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_invoice_locale_error(self, client): with pytest.raises(HttpResponseError) as e: diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_invoice_from_url_async.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_invoice_from_url_async.py index ab859aa222e5b..c44784bc4bf06 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_invoice_from_url_async.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_invoice_from_url_async.py @@ -15,8 +15,8 @@ from azure.ai.formrecognizer import FormContentType, FormRecognizerApiVersion from azure.ai.formrecognizer.aio import FormRecognizerClient from asynctestcase import AsyncFormRecognizerTest -from testcase import GlobalFormRecognizerAccountPreparer -from testcase import GlobalClientPreparer as _GlobalClientPreparer +from preparers import FormRecognizerPreparer +from preparers import GlobalClientPreparer as _GlobalClientPreparer GlobalClientPreparer = functools.partial(_GlobalClientPreparer, FormRecognizerClient) @@ -24,9 +24,9 @@ class TestInvoiceFromUrlAsync(AsyncFormRecognizerTest): - @GlobalFormRecognizerAccountPreparer() - async def test_polling_interval(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential(form_recognizer_account_key), polling_interval=7) + @FormRecognizerPreparer() + async def test_polling_interval(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormRecognizerClient(formrecognizer_test_endpoint, AzureKeyCredential(formrecognizer_test_api_key), polling_interval=7) self.assertEqual(client._client._config.polling_interval, 7) async with client: @@ -37,7 +37,7 @@ async def test_polling_interval(self, resource_group, location, form_recognizer_ await poller2.wait() self.assertEqual(poller2._polling_method._timeout, 7) # goes back to client default - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_invoice_encoded_url(self, client): async with client: @@ -46,35 +46,35 @@ async def test_invoice_encoded_url(self, client): except HttpResponseError as e: self.assertIn("https://fakeuri.com/blank%20space", e.response.request.body) - @GlobalFormRecognizerAccountPreparer() - async def test_invoice_url_bad_endpoint(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): + @FormRecognizerPreparer() + async def test_invoice_url_bad_endpoint(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): with self.assertRaises(ServiceRequestError): - client = FormRecognizerClient("http://notreal.azure.com", AzureKeyCredential(form_recognizer_account_key)) + client = FormRecognizerClient("http://notreal.azure.com", AzureKeyCredential(formrecognizer_test_api_key)) async with client: poller = await client.begin_recognize_invoices_from_url(self.invoice_url_pdf) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_authentication_successful_key(self, client): async with client: poller = await client.begin_recognize_invoices_from_url(self.invoice_url_pdf) result = await poller.result() - @GlobalFormRecognizerAccountPreparer() - async def test_authentication_bad_key(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential("xxxx")) + @FormRecognizerPreparer() + async def test_authentication_bad_key(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormRecognizerClient(formrecognizer_test_endpoint, AzureKeyCredential("xxxx")) with self.assertRaises(ClientAuthenticationError): async with client: poller = await client.begin_recognize_invoices_from_url(self.invoice_url_tiff) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_invoice_bad_url(self, client): with self.assertRaises(HttpResponseError): async with client: poller = await client.begin_recognize_invoices_from_url("https://badurl.jpg") - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_invoice_url_pass_stream(self, client): with open(self.invoice_tiff, "rb") as invoice: @@ -82,7 +82,7 @@ async def test_invoice_url_pass_stream(self, client): async with client: poller = await client.begin_recognize_invoices_from_url(invoice) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_invoice_url_transform_pdf(self, client): responses = [] @@ -118,7 +118,7 @@ def callback(raw_response, _, headers): # Check page metadata self.assertFormPagesTransformCorrect(invoice.pages, read_results, page_results) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_invoice_url_transform_tiff(self, client): responses = [] @@ -154,7 +154,7 @@ def callback(raw_response, _, headers): # Check page metadata self.assertFormPagesTransformCorrect(invoice.pages, read_results, page_results) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_invoice_url_multipage_transform_pdf(self, client): responses = [] @@ -195,7 +195,7 @@ def callback(raw_response, _, headers): self.assertFormPagesTransformCorrect(returned_model.pages, read_results, page_results) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_invoice_pdf(self, client): async with client: @@ -216,7 +216,7 @@ async def test_invoice_pdf(self, client): self.assertEqual(invoice.fields.get("InvoiceTotal").value, 56651.49) self.assertEqual(invoice.fields.get("DueDate").value, date(2017, 6, 24)) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_invoice_tiff(self, client): async with client: @@ -237,7 +237,7 @@ async def test_invoice_tiff(self, client): self.assertEqual(invoice.fields.get("InvoiceTotal").value, 56651.49) self.assertEqual(invoice.fields.get("DueDate").value, date(2017, 6, 24)) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_invoice_multipage_pdf(self, client): @@ -263,7 +263,7 @@ async def test_invoice_multipage_pdf(self, client): self.assertEqual(remittance_address.value, '2345 Dogwood Lane Birch, Kansas 98123') self.assertEqual(remittance_address.value_data.page_number, 1) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_invoice_pdf_include_field_elements(self, client): async with client: @@ -278,7 +278,7 @@ async def test_invoice_pdf_include_field_elements(self, client): for field in invoice.fields.values(): self.assertFieldElementsHasValues(field.value_data.field_elements, invoice.page_range.first_page_number) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() @pytest.mark.live_test_only async def test_invoice_continuation_token(self, client): @@ -290,7 +290,7 @@ async def test_invoice_continuation_token(self, client): self.assertIsNotNone(result) await initial_poller.wait() # necessary so azure-devtools doesn't throw assertion error - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer(client_kwargs={"api_version": FormRecognizerApiVersion.V2_0}) async def test_invoice_v2(self, client): with pytest.raises(ValueError) as e: @@ -298,7 +298,7 @@ async def test_invoice_v2(self, client): await client.begin_recognize_invoices_from_url(self.invoice_url_tiff) assert "Method 'begin_recognize_invoices_from_url' is only available for API version V2_1_PREVIEW and up" in str(e.value) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_invoice_locale_specified(self, client): async with client: @@ -306,7 +306,7 @@ async def test_invoice_locale_specified(self, client): assert 'en-US' == poller._polling_method._initial_response.http_response.request.query['locale'] await poller.wait() - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_invoice_locale_error(self, client): with pytest.raises(HttpResponseError) as e: diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_logging.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_logging.py index 5a95d001578f2..2db8a91aaa89b 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_logging.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_logging.py @@ -9,7 +9,8 @@ import pytest from azure.ai.formrecognizer import FormRecognizerClient, FormTrainingClient from azure.core.credentials import AzureKeyCredential -from testcase import FormRecognizerTest, GlobalFormRecognizerAccountPreparer +from testcase import FormRecognizerTest +from preparers import FormRecognizerPreparer class MockHandler(logging.Handler): def __init__(self): @@ -22,10 +23,10 @@ def emit(self, record): class TestLogging(FormRecognizerTest): - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @pytest.mark.live_test_only - def test_logging_info_fr_client(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential(form_recognizer_account_key)) + def test_logging_info_fr_client(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormRecognizerClient(formrecognizer_test_endpoint, AzureKeyCredential(formrecognizer_test_api_key)) mock_handler = MockHandler() logger = logging.getLogger("azure") @@ -43,10 +44,10 @@ def test_logging_info_fr_client(self, resource_group, location, form_recognizer_ else: assert message.message.find("REDACTED") == -1 - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @pytest.mark.live_test_only - def test_logging_info_ft_client(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormTrainingClient(form_recognizer_account, AzureKeyCredential(form_recognizer_account_key)) + def test_logging_info_ft_client(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormTrainingClient(formrecognizer_test_endpoint, AzureKeyCredential(formrecognizer_test_api_key)) mock_handler = MockHandler() logger = logging.getLogger("azure") diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_logging_async.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_logging_async.py index 5ac88823bd319..c95a05d2d1139 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_logging_async.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_logging_async.py @@ -9,7 +9,7 @@ import pytest from azure.ai.formrecognizer.aio import FormRecognizerClient, FormTrainingClient from azure.core.credentials import AzureKeyCredential -from testcase import GlobalFormRecognizerAccountPreparer +from preparers import FormRecognizerPreparer from asynctestcase import AsyncFormRecognizerTest @@ -24,10 +24,10 @@ def emit(self, record): class TestLogging(AsyncFormRecognizerTest): - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @pytest.mark.live_test_only - async def test_logging_info_fr_client(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential(form_recognizer_account_key)) + async def test_logging_info_fr_client(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormRecognizerClient(formrecognizer_test_endpoint, AzureKeyCredential(formrecognizer_test_api_key)) mock_handler = MockHandler() logger = logging.getLogger("azure") @@ -45,10 +45,10 @@ async def test_logging_info_fr_client(self, resource_group, location, form_recog else: assert message.message.find("REDACTED") == -1 - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @pytest.mark.live_test_only - async def test_logging_info_ft_client(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormTrainingClient(form_recognizer_account, AzureKeyCredential(form_recognizer_account_key)) + async def test_logging_info_ft_client(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormTrainingClient(formrecognizer_test_endpoint, AzureKeyCredential(formrecognizer_test_api_key)) mock_handler = MockHandler() logger = logging.getLogger("azure") diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_mgmt.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_mgmt.py index 997689ed67af2..b4a61bae97d54 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_mgmt.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_mgmt.py @@ -10,66 +10,66 @@ from azure.core.exceptions import ResourceNotFoundError, ClientAuthenticationError from azure.core.pipeline.transport import RequestsTransport from azure.ai.formrecognizer import FormTrainingClient, FormRecognizerApiVersion -from testcase import FormRecognizerTest, GlobalFormRecognizerAccountPreparer -from testcase import GlobalClientPreparer as _GlobalClientPreparer - +from testcase import FormRecognizerTest +from preparers import GlobalClientPreparer as _GlobalClientPreparer +from preparers import FormRecognizerPreparer GlobalClientPreparer = functools.partial(_GlobalClientPreparer, FormTrainingClient) class TestManagement(FormRecognizerTest): - @GlobalFormRecognizerAccountPreparer() - def test_account_properties_auth_bad_key(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormTrainingClient(form_recognizer_account, AzureKeyCredential("xxxx")) + @FormRecognizerPreparer() + def test_account_properties_auth_bad_key(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormTrainingClient(formrecognizer_test_endpoint, AzureKeyCredential("xxxx")) with self.assertRaises(ClientAuthenticationError): result = client.get_account_properties() - @GlobalFormRecognizerAccountPreparer() - def test_get_model_auth_bad_key(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormTrainingClient(form_recognizer_account, AzureKeyCredential("xxxx")) + @FormRecognizerPreparer() + def test_get_model_auth_bad_key(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormTrainingClient(formrecognizer_test_endpoint, AzureKeyCredential("xxxx")) with self.assertRaises(ClientAuthenticationError): result = client.get_custom_model("xx") - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_get_model_empty_model_id(self, client): with self.assertRaises(ValueError): result = client.get_custom_model("") - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_get_model_none_model_id(self, client): with self.assertRaises(ValueError): result = client.get_custom_model(None) - @GlobalFormRecognizerAccountPreparer() - def test_list_model_auth_bad_key(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormTrainingClient(form_recognizer_account, AzureKeyCredential("xxxx")) + @FormRecognizerPreparer() + def test_list_model_auth_bad_key(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormTrainingClient(formrecognizer_test_endpoint, AzureKeyCredential("xxxx")) with self.assertRaises(ClientAuthenticationError): result = client.list_custom_models() for res in result: test = res - @GlobalFormRecognizerAccountPreparer() - def test_delete_model_auth_bad_key(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormTrainingClient(form_recognizer_account, AzureKeyCredential("xxxx")) + @FormRecognizerPreparer() + def test_delete_model_auth_bad_key(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormTrainingClient(formrecognizer_test_endpoint, AzureKeyCredential("xxxx")) with self.assertRaises(ClientAuthenticationError): client.delete_model("xx") - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_delete_model_none_model_id(self, client): with self.assertRaises(ValueError): result = client.delete_model(None) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_delete_model_empty_model_id(self, client): with self.assertRaises(ValueError): result = client.delete_model("") - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_account_properties(self, client): properties = client.get_account_properties() @@ -77,11 +77,11 @@ def test_account_properties(self, client): self.assertIsNotNone(properties.custom_model_limit) self.assertIsNotNone(properties.custom_model_count) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) - def test_mgmt_model_labeled(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_mgmt_model_labeled(self, client, formrecognizer_storage_container_sas_url): - poller = client.begin_training(container_sas_url, use_training_labels=True) + poller = client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=True) labeled_model_from_train = poller.result() labeled_model_from_get = client.get_custom_model(labeled_model_from_train.model_id) @@ -113,11 +113,11 @@ def test_mgmt_model_labeled(self, client, container_sas_url): with self.assertRaises(ResourceNotFoundError): client.get_custom_model(labeled_model_from_train.model_id) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) - def test_mgmt_model_unlabeled(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_mgmt_model_unlabeled(self, client, formrecognizer_storage_container_sas_url): - poller = client.begin_training(container_sas_url, use_training_labels=False) + poller = client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=False) unlabeled_model_from_train = poller.result() unlabeled_model_from_get = client.get_custom_model(unlabeled_model_from_train.model_id) @@ -148,10 +148,10 @@ def test_mgmt_model_unlabeled(self, client, container_sas_url): with self.assertRaises(ResourceNotFoundError): client.get_custom_model(unlabeled_model_from_train.model_id) - @GlobalFormRecognizerAccountPreparer() - def test_get_form_recognizer_client(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): + @FormRecognizerPreparer() + def test_get_form_recognizer_client(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): transport = RequestsTransport() - ftc = FormTrainingClient(endpoint=form_recognizer_account, credential=AzureKeyCredential(form_recognizer_account_key), transport=transport) + ftc = FormTrainingClient(endpoint=formrecognizer_test_endpoint, credential=AzureKeyCredential(formrecognizer_test_api_key), transport=transport) with ftc: ftc.get_account_properties() @@ -162,11 +162,11 @@ def test_get_form_recognizer_client(self, resource_group, location, form_recogni ftc.get_account_properties() assert transport.session is not None - @GlobalFormRecognizerAccountPreparer() - def test_api_version_form_training_client(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): + @FormRecognizerPreparer() + def test_api_version_form_training_client(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): with self.assertRaises(ValueError): - ftc = FormTrainingClient(endpoint=form_recognizer_account, credential=AzureKeyCredential(form_recognizer_account_key), api_version="9.1") + ftc = FormTrainingClient(endpoint=formrecognizer_test_endpoint, credential=AzureKeyCredential(formrecognizer_test_api_key), api_version="9.1") # these do not raise - ftc = FormTrainingClient(endpoint=form_recognizer_account, credential=AzureKeyCredential(form_recognizer_account_key), api_version="2.0") - ftc = FormTrainingClient(endpoint=form_recognizer_account, credential=AzureKeyCredential(form_recognizer_account_key), api_version=FormRecognizerApiVersion.V2_0) + ftc = FormTrainingClient(endpoint=formrecognizer_test_endpoint, credential=AzureKeyCredential(formrecognizer_test_api_key), api_version="2.0") + ftc = FormTrainingClient(endpoint=formrecognizer_test_endpoint, credential=AzureKeyCredential(formrecognizer_test_api_key), api_version=FormRecognizerApiVersion.V2_0) diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_mgmt_async.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_mgmt_async.py index 2dcfe223eee31..f25722a02689a 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_mgmt_async.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_mgmt_async.py @@ -10,9 +10,9 @@ from azure.core.credentials import AzureKeyCredential from azure.core.exceptions import ResourceNotFoundError, ClientAuthenticationError from azure.ai.formrecognizer.aio import FormTrainingClient -from testcase import FormRecognizerTest, GlobalFormRecognizerAccountPreparer +from preparers import FormRecognizerPreparer from asynctestcase import AsyncFormRecognizerTest -from testcase import GlobalClientPreparer as _GlobalClientPreparer +from preparers import GlobalClientPreparer as _GlobalClientPreparer GlobalClientPreparer = functools.partial(_GlobalClientPreparer, FormTrainingClient) @@ -20,7 +20,7 @@ class TestManagementAsync(AsyncFormRecognizerTest): - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @pytest.mark.live_test_only async def test_active_directory_auth_async(self): token = self.generate_oauth_token() @@ -30,65 +30,65 @@ async def test_active_directory_auth_async(self): props = await client.get_account_properties() self.assertIsNotNone(props) - @GlobalFormRecognizerAccountPreparer() - async def test_account_properties_auth_bad_key(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormTrainingClient(form_recognizer_account, AzureKeyCredential("xxxx")) + @FormRecognizerPreparer() + async def test_account_properties_auth_bad_key(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormTrainingClient(formrecognizer_test_endpoint, AzureKeyCredential("xxxx")) with self.assertRaises(ClientAuthenticationError): async with client: result = await client.get_account_properties() - @GlobalFormRecognizerAccountPreparer() - async def test_get_model_auth_bad_key(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormTrainingClient(form_recognizer_account, AzureKeyCredential("xxxx")) + @FormRecognizerPreparer() + async def test_get_model_auth_bad_key(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormTrainingClient(formrecognizer_test_endpoint, AzureKeyCredential("xxxx")) with self.assertRaises(ClientAuthenticationError): async with client: result = await client.get_custom_model("xx") - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_get_model_empty_model_id(self, client): with self.assertRaises(ValueError): async with client: result = await client.get_custom_model("") - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_get_model_none_model_id(self, client): with self.assertRaises(ValueError): async with client: result = await client.get_custom_model(None) - @GlobalFormRecognizerAccountPreparer() - async def test_list_model_auth_bad_key(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormTrainingClient(form_recognizer_account, AzureKeyCredential("xxxx")) + @FormRecognizerPreparer() + async def test_list_model_auth_bad_key(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormTrainingClient(formrecognizer_test_endpoint, AzureKeyCredential("xxxx")) with self.assertRaises(ClientAuthenticationError): async with client: result = client.list_custom_models() async for res in result: test = res - @GlobalFormRecognizerAccountPreparer() - async def test_delete_model_auth_bad_key(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormTrainingClient(form_recognizer_account, AzureKeyCredential("xxxx")) + @FormRecognizerPreparer() + async def test_delete_model_auth_bad_key(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormTrainingClient(formrecognizer_test_endpoint, AzureKeyCredential("xxxx")) with self.assertRaises(ClientAuthenticationError): async with client: result = await client.delete_model("xx") - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_delete_model_none_model_id(self, client): with self.assertRaises(ValueError): async with client: result = await client.delete_model(None) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_delete_model_empty_model_id(self, client): with self.assertRaises(ValueError): async with client: result = await client.delete_model("") - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_account_properties(self, client): async with client: @@ -97,11 +97,11 @@ async def test_account_properties(self, client): self.assertIsNotNone(properties.custom_model_limit) self.assertIsNotNone(properties.custom_model_count) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) - async def test_mgmt_model_labeled(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_mgmt_model_labeled(self, client, formrecognizer_storage_container_sas_url): async with client: - poller = await client.begin_training(container_sas_url, use_training_labels=True) + poller = await client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=True) labeled_model_from_train = await poller.result() labeled_model_from_get = await client.get_custom_model(labeled_model_from_train.model_id) @@ -132,11 +132,11 @@ async def test_mgmt_model_labeled(self, client, container_sas_url): with self.assertRaises(ResourceNotFoundError): await client.get_custom_model(labeled_model_from_train.model_id) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) - async def test_mgmt_model_unlabeled(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_mgmt_model_unlabeled(self, client, formrecognizer_storage_container_sas_url): async with client: - poller = await client.begin_training(container_sas_url, use_training_labels=False) + poller = await client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=False) unlabeled_model_from_train = await poller.result() unlabeled_model_from_get = await client.get_custom_model(unlabeled_model_from_train.model_id) @@ -166,10 +166,10 @@ async def test_mgmt_model_unlabeled(self, client, container_sas_url): with self.assertRaises(ResourceNotFoundError): await client.get_custom_model(unlabeled_model_from_train.model_id) - @GlobalFormRecognizerAccountPreparer() - async def test_get_form_recognizer_client(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): + @FormRecognizerPreparer() + async def test_get_form_recognizer_client(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): transport = AioHttpTransport() - ftc = FormTrainingClient(endpoint=form_recognizer_account, credential=AzureKeyCredential(form_recognizer_account_key), transport=transport) + ftc = FormTrainingClient(endpoint=formrecognizer_test_endpoint, credential=AzureKeyCredential(formrecognizer_test_api_key), transport=transport) async with ftc: await ftc.get_account_properties() diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_multiapi.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_multiapi.py index 9efbf9bf57a96..df25ddf9be330 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_multiapi.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_multiapi.py @@ -4,56 +4,56 @@ # Copyright (c) Microsoft Corporation. # Licensed under the MIT License. # ------------------------------------ - +import pytest import functools from testcase import FormRecognizerTest -from testcase import GlobalFormRecognizerAccountPreparer -from testcase import GlobalClientPreparer as _GlobalClientPreparer +from preparers import FormRecognizerPreparer +from preparers import GlobalClientPreparer as _GlobalClientPreparer from azure.ai.formrecognizer import FormRecognizerClient, FormTrainingClient, FormRecognizerApiVersion FormRecognizerClientPreparer = functools.partial(_GlobalClientPreparer, FormRecognizerClient) FormTrainingClientPreparer = functools.partial(_GlobalClientPreparer, FormTrainingClient) class TestMultiapi(FormRecognizerTest): - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @FormRecognizerClientPreparer() def test_default_api_version_form_recognizer_client(self, client): assert "v2.1-preview.2" in client._client._client._base_url - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @FormTrainingClientPreparer() def test_default_api_version_form_training_client(self, client): assert "v2.1-preview.2" in client._client._client._base_url - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @FormRecognizerClientPreparer(client_kwargs={"api_version": FormRecognizerApiVersion.V2_0}) def test_v2_0_form_recognizer_client(self, client): assert "v2.0" in client._client._client._base_url - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @FormTrainingClientPreparer(client_kwargs={"api_version": FormRecognizerApiVersion.V2_0}) def test_v2_0_form_training_client(self, client): assert "v2.0" in client._client._client._base_url - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @FormRecognizerClientPreparer(client_kwargs={"api_version": FormRecognizerApiVersion.V2_1_PREVIEW}) def test_v2_1_preview_1_form_recognizer_client(self, client): assert "v2.1-preview.2" in client._client._client._base_url - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @FormTrainingClientPreparer(client_kwargs={"api_version": FormRecognizerApiVersion.V2_1_PREVIEW}) def test_v2_1_preview_1_form_training_client(self, client): assert "v2.1-preview.2" in client._client._client._base_url - @GlobalFormRecognizerAccountPreparer() - @FormTrainingClientPreparer(training=True, client_kwargs={"api_version": FormRecognizerApiVersion.V2_0}) - def test_v2_0_compatibility(self, client, container_sas_url): + @FormRecognizerPreparer() + @FormTrainingClientPreparer(client_kwargs={"api_version": FormRecognizerApiVersion.V2_0}) + def test_v2_0_compatibility(self, client, formrecognizer_storage_container_sas_url): # test that the addition of new attributes in v2.1 does not break v2.0 - label_poller = client.begin_training(container_sas_url, use_training_labels=True) + label_poller = client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=True) label_result = label_poller.result() - unlabel_poller = client.begin_training(container_sas_url, use_training_labels=False) + unlabel_poller = client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=False) unlabel_result = unlabel_poller.result() assert label_result.properties is None diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_multiapi_async.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_multiapi_async.py index 422cb22155b71..1fb74a1e91875 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_multiapi_async.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_multiapi_async.py @@ -4,10 +4,10 @@ # Copyright (c) Microsoft Corporation. # Licensed under the MIT License. # ------------------------------------ - +import pytest import functools -from testcase import GlobalFormRecognizerAccountPreparer -from testcase import GlobalClientPreparer as _GlobalClientPreparer +from preparers import FormRecognizerPreparer +from preparers import GlobalClientPreparer as _GlobalClientPreparer from asynctestcase import AsyncFormRecognizerTest from azure.ai.formrecognizer.aio import FormRecognizerClient, FormTrainingClient from azure.ai.formrecognizer import FormRecognizerApiVersion @@ -16,45 +16,45 @@ FormTrainingClientPreparer = functools.partial(_GlobalClientPreparer, FormTrainingClient) class TestMultiapi(AsyncFormRecognizerTest): - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @FormRecognizerClientPreparer() def test_default_api_version_form_recognizer_client(self, client): assert "v2.1-preview.2" in client._client._client._base_url - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @FormTrainingClientPreparer() def test_default_api_version_form_training_client(self, client): assert "v2.1-preview.2" in client._client._client._base_url - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @FormRecognizerClientPreparer(client_kwargs={"api_version": FormRecognizerApiVersion.V2_0}) def test_v2_0_form_recognizer_client(self, client): assert "v2.0" in client._client._client._base_url - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @FormTrainingClientPreparer(client_kwargs={"api_version": FormRecognizerApiVersion.V2_0}) def test_v2_0_form_training_client(self, client): assert "v2.0" in client._client._client._base_url - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @FormRecognizerClientPreparer(client_kwargs={"api_version": FormRecognizerApiVersion.V2_1_PREVIEW}) def test_v2_1_preview_1_form_recognizer_client(self, client): assert "v2.1-preview.2" in client._client._client._base_url - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @FormTrainingClientPreparer(client_kwargs={"api_version": FormRecognizerApiVersion.V2_1_PREVIEW}) def test_v2_1_preview_1_form_training_client(self, client): assert "v2.1-preview.2" in client._client._client._base_url - @GlobalFormRecognizerAccountPreparer() - @FormTrainingClientPreparer(training=True, client_kwargs={"api_version": FormRecognizerApiVersion.V2_0}) - async def test_v2_0_compatibility(self, client, container_sas_url): + @FormRecognizerPreparer() + @FormTrainingClientPreparer(client_kwargs={"api_version": FormRecognizerApiVersion.V2_0}) + async def test_v2_0_compatibility(self, client, formrecognizer_storage_container_sas_url): # test that the addition of new attributes in v2.1 does not break v2.0 async with client: - label_poller = await client.begin_training(container_sas_url, use_training_labels=True) + label_poller = await client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=True) label_result = await label_poller.result() - unlabel_poller = await client.begin_training(container_sas_url, use_training_labels=False) + unlabel_poller = await client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=False) unlabel_result = await unlabel_poller.result() assert label_result.properties is None diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_receipt.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_receipt.py index cc18f4f35d91a..68c2d28d131c6 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_receipt.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_receipt.py @@ -13,24 +13,24 @@ from azure.ai.formrecognizer._generated.models import AnalyzeOperationResult from azure.ai.formrecognizer._response_handlers import prepare_prebuilt_models from azure.ai.formrecognizer import FormRecognizerClient, FormContentType, FormRecognizerApiVersion -from testcase import FormRecognizerTest, GlobalFormRecognizerAccountPreparer -from testcase import GlobalClientPreparer as _GlobalClientPreparer - +from testcase import FormRecognizerTest +from preparers import GlobalClientPreparer as _GlobalClientPreparer +from preparers import FormRecognizerPreparer GlobalClientPreparer = functools.partial(_GlobalClientPreparer, FormRecognizerClient) class TestReceiptFromStream(FormRecognizerTest): - @GlobalFormRecognizerAccountPreparer() - def test_receipt_bad_endpoint(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): + @FormRecognizerPreparer() + def test_receipt_bad_endpoint(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): with open(self.receipt_jpg, "rb") as fd: myfile = fd.read() with self.assertRaises(ServiceRequestError): - client = FormRecognizerClient("http://notreal.azure.com", AzureKeyCredential(form_recognizer_account_key)) + client = FormRecognizerClient("http://notreal.azure.com", AzureKeyCredential(formrecognizer_test_api_key)) poller = client.begin_recognize_receipts(myfile) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_authentication_successful_key(self, client): with open(self.receipt_jpg, "rb") as fd: @@ -38,13 +38,13 @@ def test_authentication_successful_key(self, client): poller = client.begin_recognize_receipts(myfile) result = poller.result() - @GlobalFormRecognizerAccountPreparer() - def test_authentication_bad_key(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential("xxxx")) + @FormRecognizerPreparer() + def test_authentication_bad_key(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormRecognizerClient(formrecognizer_test_endpoint, AzureKeyCredential("xxxx")) with self.assertRaises(ClientAuthenticationError): poller = client.begin_recognize_receipts(b"xx", content_type="image/jpeg") - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_passing_enum_content_type(self, client): with open(self.receipt_png, "rb") as fd: @@ -56,7 +56,7 @@ def test_passing_enum_content_type(self, client): result = poller.result() self.assertIsNotNone(result) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_damaged_file_passed_as_bytes(self, client): damaged_pdf = b"\x25\x50\x44\x46\x55\x55\x55" # still has correct bytes to be recognized as PDF @@ -65,7 +65,7 @@ def test_damaged_file_passed_as_bytes(self, client): damaged_pdf ) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_damaged_file_bytes_fails_autodetect_content_type(self, client): damaged_pdf = b"\x50\x44\x46\x55\x55\x55" # doesn't match any magic file numbers @@ -74,7 +74,7 @@ def test_damaged_file_bytes_fails_autodetect_content_type(self, client): damaged_pdf ) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_damaged_file_passed_as_bytes_io(self, client): damaged_pdf = BytesIO(b"\x25\x50\x44\x46\x55\x55\x55") # still has correct bytes to be recognized as PDF @@ -83,7 +83,7 @@ def test_damaged_file_passed_as_bytes_io(self, client): damaged_pdf ) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_damaged_file_bytes_io_fails_autodetect(self, client): damaged_pdf = BytesIO(b"\x50\x44\x46\x55\x55\x55") # doesn't match any magic file numbers @@ -92,7 +92,7 @@ def test_damaged_file_bytes_io_fails_autodetect(self, client): damaged_pdf ) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_blank_page(self, client): @@ -104,7 +104,7 @@ def test_blank_page(self, client): result = poller.result() self.assertIsNotNone(result) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_passing_bad_content_type_param_passed(self, client): with open(self.receipt_jpg, "rb") as fd: @@ -115,13 +115,13 @@ def test_passing_bad_content_type_param_passed(self, client): content_type="application/jpeg" ) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_passing_unsupported_url_content_type(self, client): with self.assertRaises(TypeError): poller = client.begin_recognize_receipts("https://badurl.jpg", content_type="application/json") - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_auto_detect_unsupported_stream_content(self, client): @@ -133,7 +133,7 @@ def test_auto_detect_unsupported_stream_content(self, client): myfile ) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_receipt_stream_transform_png(self, client): responses = [] @@ -171,7 +171,7 @@ def callback(raw_response, _, headers): # Check page metadata self.assertFormPagesTransformCorrect(receipt.pages, read_results) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_receipt_stream_transform_jpg(self, client): responses = [] @@ -210,7 +210,7 @@ def callback(raw_response, _, headers): # Check form pages self.assertFormPagesTransformCorrect(receipt.pages, read_results) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_receipt_jpg(self, client): @@ -239,7 +239,7 @@ def test_receipt_jpg(self, client): self.assertEqual(receipt_type.value, 'Itemized') self.assertReceiptItemsHasValues(receipt.fields['Items'].value, receipt.page_range.first_page_number, False) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_receipt_png(self, client): @@ -263,7 +263,7 @@ def test_receipt_png(self, client): self.assertIsNotNone(receipt_type.confidence) self.assertEqual(receipt_type.value, 'Itemized') - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_receipt_jpg_include_field_elements(self, client): with open(self.receipt_jpg, "rb") as fd: @@ -280,7 +280,7 @@ def test_receipt_jpg_include_field_elements(self, client): if field.value_type not in ["list", "dictionary"] and name != "ReceiptType": # receipt cases where value_data is None self.assertFieldElementsHasValues(field.value_data.field_elements, receipt.page_range.first_page_number) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_receipt_multipage(self, client): @@ -315,7 +315,7 @@ def test_receipt_multipage(self, client): self.assertIsNotNone(receipt_type.confidence) self.assertEqual(receipt_type.value, 'Itemized') - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_receipt_multipage_transform(self, client): @@ -359,7 +359,7 @@ def callback(raw_response, _, headers): # Check form pages self.assertFormPagesTransformCorrect(returned_model, read_results) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() @pytest.mark.live_test_only def test_receipt_continuation_token(self, client): @@ -374,7 +374,7 @@ def test_receipt_continuation_token(self, client): self.assertIsNotNone(result) initial_poller.wait() # necessary so azure-devtools doesn't throw assertion error - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_receipt_locale_specified(self, client): with open(self.receipt_jpg, "rb") as fd: @@ -383,7 +383,7 @@ def test_receipt_locale_specified(self, client): assert 'en-IN' == poller._polling_method._initial_response.http_response.request.query['locale'] poller.wait() - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_receipt_locale_error(self, client): with open(self.receipt_jpg, "rb") as fd: @@ -392,7 +392,7 @@ def test_receipt_locale_error(self, client): client.begin_recognize_receipts(receipt, locale="not a locale") assert "UnsupportedLocale" == e.value.error.code - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer(client_kwargs={"api_version": FormRecognizerApiVersion.V2_0}) def test_receipt_locale_v2(self, client): with open(self.receipt_jpg, "rb") as fd: diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_receipt_async.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_receipt_async.py index 7128494bad6a5..30c0a5f2524ec 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_receipt_async.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_receipt_async.py @@ -14,9 +14,9 @@ from azure.ai.formrecognizer._response_handlers import prepare_prebuilt_models from azure.ai.formrecognizer.aio import FormRecognizerClient from azure.ai.formrecognizer import FormContentType, FormRecognizerApiVersion -from testcase import GlobalFormRecognizerAccountPreparer +from preparers import FormRecognizerPreparer from asynctestcase import AsyncFormRecognizerTest -from testcase import GlobalClientPreparer as _GlobalClientPreparer +from preparers import GlobalClientPreparer as _GlobalClientPreparer GlobalClientPreparer = functools.partial(_GlobalClientPreparer, FormRecognizerClient) @@ -24,17 +24,17 @@ class TestReceiptFromStreamAsync(AsyncFormRecognizerTest): - @GlobalFormRecognizerAccountPreparer() - async def test_receipt_bad_endpoint(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): + @FormRecognizerPreparer() + async def test_receipt_bad_endpoint(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): with open(self.receipt_jpg, "rb") as fd: myfile = fd.read() with self.assertRaises(ServiceRequestError): - client = FormRecognizerClient("http://notreal.azure.com", AzureKeyCredential(form_recognizer_account_key)) + client = FormRecognizerClient("http://notreal.azure.com", AzureKeyCredential(formrecognizer_test_api_key)) async with client: poller = await client.begin_recognize_receipts(myfile) result = await poller.result() - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_authentication_successful_key(self, client): with open(self.receipt_jpg, "rb") as fd: @@ -43,15 +43,15 @@ async def test_authentication_successful_key(self, client): poller = await client.begin_recognize_receipts(myfile) result = await poller.result() - @GlobalFormRecognizerAccountPreparer() - async def test_authentication_bad_key(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential("xxxx")) + @FormRecognizerPreparer() + async def test_authentication_bad_key(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormRecognizerClient(formrecognizer_test_endpoint, AzureKeyCredential("xxxx")) with self.assertRaises(ClientAuthenticationError): async with client: poller = await client.begin_recognize_receipts(b"xx", content_type="image/jpeg") result = await poller.result() - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_passing_enum_content_type(self, client): with open(self.receipt_png, "rb") as fd: @@ -64,7 +64,7 @@ async def test_passing_enum_content_type(self, client): result = await poller.result() self.assertIsNotNone(result) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_damaged_file_passed_as_bytes(self, client): damaged_pdf = b"\x25\x50\x44\x46\x55\x55\x55" # still has correct bytes to be recognized as PDF @@ -75,7 +75,7 @@ async def test_damaged_file_passed_as_bytes(self, client): ) result = await poller.result() - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_damaged_file_bytes_fails_autodetect_content_type(self, client): damaged_pdf = b"\x50\x44\x46\x55\x55\x55" # doesn't match any magic file numbers @@ -86,7 +86,7 @@ async def test_damaged_file_bytes_fails_autodetect_content_type(self, client): ) result = await poller.result() - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_damaged_file_passed_as_bytes_io(self, client): damaged_pdf = BytesIO(b"\x25\x50\x44\x46\x55\x55\x55") # still has correct bytes to be recognized as PDF @@ -97,9 +97,9 @@ async def test_damaged_file_passed_as_bytes_io(self, client): ) result = await poller.result() - @GlobalFormRecognizerAccountPreparer() - async def test_damaged_file_bytes_io_fails_autodetect(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential(form_recognizer_account_key)) + @FormRecognizerPreparer() + async def test_damaged_file_bytes_io_fails_autodetect(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormRecognizerClient(formrecognizer_test_endpoint, AzureKeyCredential(formrecognizer_test_api_key)) damaged_pdf = BytesIO(b"\x50\x44\x46\x55\x55\x55") # doesn't match any magic file numbers with self.assertRaises(ValueError): async with client: @@ -108,7 +108,7 @@ async def test_damaged_file_bytes_io_fails_autodetect(self, resource_group, loca ) result = await poller.result() - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_blank_page(self, client): @@ -121,7 +121,7 @@ async def test_blank_page(self, client): result = await poller.result() self.assertIsNotNone(result) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_passing_bad_content_type_param_passed(self, client): with open(self.receipt_jpg, "rb") as fd: @@ -134,7 +134,7 @@ async def test_passing_bad_content_type_param_passed(self, client): ) result = await poller.result() - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_passing_unsupported_url_content_type(self, client): with self.assertRaises(TypeError): @@ -142,7 +142,7 @@ async def test_passing_unsupported_url_content_type(self, client): poller = await client.begin_recognize_receipts("https://badurl.jpg", content_type="application/json") result = await poller.result() - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_auto_detect_unsupported_stream_content(self, client): with open(self.unsupported_content_py, "rb") as fd: @@ -155,7 +155,7 @@ async def test_auto_detect_unsupported_stream_content(self, client): ) result = await poller.result() - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_receipt_stream_transform_png(self, client): @@ -195,7 +195,7 @@ def callback(raw_response, _, headers): # Check page metadata self.assertFormPagesTransformCorrect(receipt.pages, read_results) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_receipt_stream_transform_jpg(self, client): responses = [] @@ -235,7 +235,7 @@ def callback(raw_response, _, headers): # Check form pages self.assertFormPagesTransformCorrect(receipt.pages, read_results) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_receipt_jpg(self, client): @@ -265,7 +265,7 @@ async def test_receipt_jpg(self, client): self.assertEqual(receipt_type.value, 'Itemized') self.assertReceiptItemsHasValues(receipt.fields["Items"].value, receipt.page_range.first_page_number, False) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_receipt_png(self, client): with open(self.receipt_png, "rb") as fd: @@ -290,7 +290,7 @@ async def test_receipt_png(self, client): self.assertIsNotNone(receipt_type.confidence) self.assertEqual(receipt_type.value, 'Itemized') - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_receipt_jpg_include_field_elements(self, client): with open(self.receipt_jpg, "rb") as fd: @@ -308,7 +308,7 @@ async def test_receipt_jpg_include_field_elements(self, client): if field.value_type not in ["list", "dictionary"] and name != "ReceiptType": # receipt cases where value_data is None self.assertFieldElementsHasValues(field.value_data.field_elements, receipt.page_range.first_page_number) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_receipt_multipage(self, client): with open(self.multipage_invoice_pdf, "rb") as fd: @@ -343,7 +343,7 @@ async def test_receipt_multipage(self, client): self.assertIsNotNone(receipt_type.confidence) self.assertEqual(receipt_type.value, 'Itemized') - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_receipt_multipage_transform(self, client): responses = [] @@ -387,7 +387,7 @@ def callback(raw_response, _, headers): # Check form pages self.assertFormPagesTransformCorrect(returned_model, read_results) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() @pytest.mark.live_test_only async def test_receipt_continuation_token(self, client): @@ -403,7 +403,7 @@ async def test_receipt_continuation_token(self, client): self.assertIsNotNone(result) await initial_poller.wait() # necessary so azure-devtools doesn't throw assertion error - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_receipt_locale_specified(self, client): with open(self.receipt_jpg, "rb") as fd: @@ -413,7 +413,7 @@ async def test_receipt_locale_specified(self, client): assert 'en-IN' == poller._polling_method._initial_response.http_response.request.query['locale'] await poller.wait() - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_receipt_locale_error(self, client): with open(self.receipt_jpg, "rb") as fd: @@ -423,7 +423,7 @@ async def test_receipt_locale_error(self, client): await client.begin_recognize_receipts(receipt, locale="not a locale") assert "UnsupportedLocale" == e.value.error.code - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer(client_kwargs={"api_version": FormRecognizerApiVersion.V2_0}) async def test_receipt_locale_v2(self, client): with open(self.receipt_jpg, "rb") as fd: diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_receipt_from_url.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_receipt_from_url.py index 4f37e04c21978..558f18d345424 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_receipt_from_url.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_receipt_from_url.py @@ -12,18 +12,18 @@ from azure.ai.formrecognizer._generated.models import AnalyzeOperationResult from azure.ai.formrecognizer._response_handlers import prepare_prebuilt_models from azure.ai.formrecognizer import FormRecognizerClient, FormRecognizerApiVersion -from testcase import FormRecognizerTest, GlobalFormRecognizerAccountPreparer -from testcase import GlobalClientPreparer as _GlobalClientPreparer - +from testcase import FormRecognizerTest +from preparers import GlobalClientPreparer as _GlobalClientPreparer +from preparers import FormRecognizerPreparer GlobalClientPreparer = functools.partial(_GlobalClientPreparer, FormRecognizerClient) class TestReceiptFromUrl(FormRecognizerTest): - @GlobalFormRecognizerAccountPreparer() - def test_polling_interval(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential(form_recognizer_account_key), polling_interval=7) + @FormRecognizerPreparer() + def test_polling_interval(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormRecognizerClient(formrecognizer_test_endpoint, AzureKeyCredential(formrecognizer_test_api_key), polling_interval=7) self.assertEqual(client._client._config.polling_interval, 7) poller = client.begin_recognize_receipts_from_url(self.receipt_url_jpg, polling_interval=6) @@ -42,7 +42,7 @@ def test_active_directory_auth(self): result = poller.result() self.assertIsNotNone(result) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_receipts_encoded_url(self, client): try: @@ -50,38 +50,38 @@ def test_receipts_encoded_url(self, client): except HttpResponseError as e: self.assertIn("https://fakeuri.com/blank%20space", e.response.request.body) - @GlobalFormRecognizerAccountPreparer() - def test_receipt_url_bad_endpoint(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): + @FormRecognizerPreparer() + def test_receipt_url_bad_endpoint(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): with self.assertRaises(ServiceRequestError): - client = FormRecognizerClient("http://notreal.azure.com", AzureKeyCredential(form_recognizer_account_key)) + client = FormRecognizerClient("http://notreal.azure.com", AzureKeyCredential(formrecognizer_test_api_key)) poller = client.begin_recognize_receipts_from_url(self.receipt_url_jpg) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_receipt_url_auth_successful_key(self, client): poller = client.begin_recognize_receipts_from_url(self.receipt_url_jpg) result = poller.result() - @GlobalFormRecognizerAccountPreparer() - def test_receipt_url_auth_bad_key(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential("xxxx")) + @FormRecognizerPreparer() + def test_receipt_url_auth_bad_key(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormRecognizerClient(formrecognizer_test_endpoint, AzureKeyCredential("xxxx")) with self.assertRaises(ClientAuthenticationError): poller = client.begin_recognize_receipts_from_url(self.receipt_url_jpg) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_receipt_bad_url(self, client): with self.assertRaises(HttpResponseError): poller = client.begin_recognize_receipts_from_url("https://badurl.jpg") - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_receipt_url_pass_stream(self, client): with open(self.receipt_png, "rb") as receipt: with self.assertRaises(HttpResponseError): poller = client.begin_recognize_receipts_from_url(receipt) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_receipt_url_transform_jpg(self, client): responses = [] @@ -116,7 +116,7 @@ def callback(raw_response, _, headers): # Check page metadata self.assertFormPagesTransformCorrect(receipt.pages, read_results) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_receipt_url_transform_png(self, client): @@ -152,7 +152,7 @@ def callback(raw_response, _, headers): # Check page metadata self.assertFormPagesTransformCorrect(receipt.pages, read_results) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_receipt_url_include_field_elements(self, client): @@ -171,7 +171,7 @@ def test_receipt_url_include_field_elements(self, client): if field.value_type not in ["list", "dictionary"] and name != "ReceiptType": # receipt cases where value_data is None self.assertFieldElementsHasValues(field.value_data.field_elements, receipt.page_range.first_page_number) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_receipt_url_jpg(self, client): @@ -197,7 +197,7 @@ def test_receipt_url_jpg(self, client): self.assertEqual(receipt_type.value, 'Itemized') self.assertReceiptItemsHasValues(receipt.fields["Items"].value, receipt.page_range.first_page_number, False) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_receipt_url_png(self, client): @@ -220,7 +220,7 @@ def test_receipt_url_png(self, client): self.assertIsNotNone(receipt_type.confidence) self.assertEqual(receipt_type.value, 'Itemized') - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_receipt_multipage_url(self, client): @@ -253,7 +253,7 @@ def test_receipt_multipage_url(self, client): self.assertIsNotNone(receipt_type.confidence) self.assertEqual(receipt_type.value, 'Itemized') - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_receipt_multipage_transform_url(self, client): @@ -294,7 +294,7 @@ def callback(raw_response, _, headers): # Check form pages self.assertFormPagesTransformCorrect(returned_model, read_results) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() @pytest.mark.live_test_only def test_receipt_continuation_token(self, client): @@ -306,21 +306,21 @@ def test_receipt_continuation_token(self, client): self.assertIsNotNone(result) initial_poller.wait() # necessary so azure-devtools doesn't throw assertion error - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_receipt_locale_specified(self, client): poller = client.begin_recognize_receipts_from_url(self.receipt_url_jpg, locale="en-IN") assert 'en-IN' == poller._polling_method._initial_response.http_response.request.query['locale'] poller.wait() - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_receipt_locale_error(self, client): with pytest.raises(HttpResponseError) as e: client.begin_recognize_receipts_from_url(self.receipt_url_jpg, locale="not a locale") assert "UnsupportedLocale" == e.value.error.code - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer(client_kwargs={"api_version": FormRecognizerApiVersion.V2_0}) def test_receipt_locale_v2(self, client): with pytest.raises(ValueError) as e: diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_receipt_from_url_async.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_receipt_from_url_async.py index 0b5b9fa313070..aea49d21b039f 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_receipt_from_url_async.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_receipt_from_url_async.py @@ -13,9 +13,9 @@ from azure.ai.formrecognizer._response_handlers import prepare_prebuilt_models from azure.ai.formrecognizer import FormRecognizerApiVersion from azure.ai.formrecognizer.aio import FormRecognizerClient -from testcase import GlobalFormRecognizerAccountPreparer +from preparers import FormRecognizerPreparer from asynctestcase import AsyncFormRecognizerTest -from testcase import GlobalClientPreparer as _GlobalClientPreparer +from preparers import GlobalClientPreparer as _GlobalClientPreparer GlobalClientPreparer = functools.partial(_GlobalClientPreparer, FormRecognizerClient) @@ -23,9 +23,9 @@ class TestReceiptFromUrlAsync(AsyncFormRecognizerTest): - @GlobalFormRecognizerAccountPreparer() - async def test_polling_interval(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential(form_recognizer_account_key), polling_interval=7) + @FormRecognizerPreparer() + async def test_polling_interval(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormRecognizerClient(formrecognizer_test_endpoint, AzureKeyCredential(formrecognizer_test_api_key), polling_interval=7) self.assertEqual(client._client._config.polling_interval, 7) async with client: @@ -37,7 +37,7 @@ async def test_polling_interval(self, resource_group, location, form_recognizer_ self.assertEqual(poller2._polling_method._timeout, 7) # goes back to client default @pytest.mark.live_test_only - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() async def test_active_directory_auth_async(self): token = self.generate_oauth_token() endpoint = self.get_oauth_endpoint() @@ -49,7 +49,7 @@ async def test_active_directory_auth_async(self): result = await poller.result() self.assertIsNotNone(result) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_receipts_encoded_url(self, client): with pytest.raises(HttpResponseError) as e: @@ -57,17 +57,17 @@ async def test_receipts_encoded_url(self, client): poller = await client.begin_recognize_receipts_from_url("https://fakeuri.com/blank%20space") self.assertIn("https://fakeuri.com/blank%20space", e.value.response.request.body) - @GlobalFormRecognizerAccountPreparer() - async def test_receipt_url_bad_endpoint(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): + @FormRecognizerPreparer() + async def test_receipt_url_bad_endpoint(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): with self.assertRaises(ServiceRequestError): - client = FormRecognizerClient("http://notreal.azure.com", AzureKeyCredential(form_recognizer_account_key)) + client = FormRecognizerClient("http://notreal.azure.com", AzureKeyCredential(formrecognizer_test_api_key)) async with client: poller = await client.begin_recognize_receipts_from_url( self.receipt_url_jpg ) result = await poller.result() - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_receipt_url_auth_successful_key(self, client): async with client: @@ -76,9 +76,9 @@ async def test_receipt_url_auth_successful_key(self, client): ) result = await poller.result() - @GlobalFormRecognizerAccountPreparer() - async def test_receipt_url_auth_bad_key(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormRecognizerClient(form_recognizer_account, AzureKeyCredential("xxxx")) + @FormRecognizerPreparer() + async def test_receipt_url_auth_bad_key(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormRecognizerClient(formrecognizer_test_endpoint, AzureKeyCredential("xxxx")) with self.assertRaises(ClientAuthenticationError): async with client: poller = await client.begin_recognize_receipts_from_url( @@ -86,7 +86,7 @@ async def test_receipt_url_auth_bad_key(self, resource_group, location, form_rec ) result = await poller.result() - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_receipt_bad_url(self, client): with self.assertRaises(HttpResponseError): @@ -94,7 +94,7 @@ async def test_receipt_bad_url(self, client): poller = await client.begin_recognize_receipts_from_url("https://badurl.jpg") result = await poller.result() - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_receipt_url_pass_stream(self, client): @@ -106,7 +106,7 @@ async def test_receipt_url_pass_stream(self, client): poller = await client.begin_recognize_receipts_from_url(receipt) result = await poller.result() - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_receipt_url_transform_jpg(self, client): @@ -143,7 +143,7 @@ def callback(raw_response, _, headers): # Check page metadata self.assertFormPagesTransformCorrect(receipt.pages, read_results) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_receipt_url_transform_png(self, client): responses = [] @@ -179,7 +179,7 @@ def callback(raw_response, _, headers): # Check page metadata self.assertFormPagesTransformCorrect(receipt.pages, read_results) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_receipt_url_include_field_elements(self, client): @@ -199,7 +199,7 @@ async def test_receipt_url_include_field_elements(self, client): if field.value_type not in ["list", "dictionary"] and name != "ReceiptType": # receipt cases where value_data is None self.assertFieldElementsHasValues(field.value_data.field_elements, receipt.page_range.first_page_number) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_receipt_url_jpg(self, client): @@ -228,7 +228,7 @@ async def test_receipt_url_jpg(self, client): self.assertEqual(receipt_type.value, 'Itemized') self.assertReceiptItemsHasValues(receipt.fields["Items"].value, receipt.page_range.first_page_number, False) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_receipt_url_png(self, client): @@ -252,7 +252,7 @@ async def test_receipt_url_png(self, client): self.assertIsNotNone(receipt_type.confidence) self.assertEqual(receipt_type.value, 'Itemized') - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_receipt_multipage_url(self, client): @@ -286,7 +286,7 @@ async def test_receipt_multipage_url(self, client): self.assertIsNotNone(receipt_type.confidence) self.assertEqual(receipt_type.value, 'Itemized') - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_receipt_multipage_transform_url(self, client): @@ -328,7 +328,7 @@ def callback(raw_response, _, headers): # Check form pages self.assertFormPagesTransformCorrect(returned_model, read_results) - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() @pytest.mark.live_test_only async def test_receipt_continuation_token(self, client): @@ -341,7 +341,7 @@ async def test_receipt_continuation_token(self, client): self.assertIsNotNone(result) await initial_poller.wait() # necessary so azure-devtools doesn't throw assertion error - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_receipt_locale_specified(self, client): async with client: @@ -349,7 +349,7 @@ async def test_receipt_locale_specified(self, client): assert 'en-IN' == poller._polling_method._initial_response.http_response.request.query['locale'] await poller.wait() - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_receipt_locale_error(self, client): with pytest.raises(HttpResponseError) as e: @@ -357,7 +357,7 @@ async def test_receipt_locale_error(self, client): await client.begin_recognize_receipts_from_url(self.receipt_url_jpg, locale="not a locale") assert "UnsupportedLocale" == e.value.error.code - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer(client_kwargs={"api_version": FormRecognizerApiVersion.V2_0}) async def test_receipt_locale_v2(self, client): with pytest.raises(ValueError) as e: diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_training.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_training.py index ab859a9978a67..b180c926cac19 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_training.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_training.py @@ -11,33 +11,33 @@ from azure.ai.formrecognizer._generated.models import Model from azure.ai.formrecognizer._models import CustomFormModel from azure.ai.formrecognizer import FormTrainingClient -from testcase import FormRecognizerTest, GlobalFormRecognizerAccountPreparer -from testcase import GlobalClientPreparer as _GlobalClientPreparer - +from testcase import FormRecognizerTest +from preparers import GlobalClientPreparer as _GlobalClientPreparer +from preparers import FormRecognizerPreparer GlobalClientPreparer = functools.partial(_GlobalClientPreparer, FormTrainingClient) class TestTraining(FormRecognizerTest): - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) - def test_polling_interval(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_polling_interval(self, client, formrecognizer_storage_container_sas_url): def check_poll_value(poll): if self.is_live: self.assertEqual(poll, 5) else: self.assertEqual(poll, 0) check_poll_value(client._client._config.polling_interval) - poller = client.begin_training(training_files_url=container_sas_url, use_training_labels=False, polling_interval=6) + poller = client.begin_training(training_files_url=formrecognizer_storage_container_sas_url, use_training_labels=False, polling_interval=6) poller.wait() self.assertEqual(poller._polling_method._timeout, 6) - poller2 = client.begin_training(training_files_url=container_sas_url, use_training_labels=False) + poller2 = client.begin_training(training_files_url=formrecognizer_storage_container_sas_url, use_training_labels=False) poller2.wait() check_poll_value(poller2._polling_method._timeout) # goes back to client default client.close() - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() def test_training_encoded_url(self, client): with self.assertRaises(HttpResponseError): @@ -48,17 +48,17 @@ def test_training_encoded_url(self, client): self.assertIn("https://fakeuri.com/blank%20space", poller._polling_method._initial_response.http_request.body) poller.wait() - @GlobalFormRecognizerAccountPreparer() - def test_training_auth_bad_key(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormTrainingClient(form_recognizer_account, AzureKeyCredential("xxxx")) + @FormRecognizerPreparer() + def test_training_auth_bad_key(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormTrainingClient(formrecognizer_test_endpoint, AzureKeyCredential("xxxx")) with self.assertRaises(ClientAuthenticationError): poller = client.begin_training("xx", use_training_labels=False) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) - def test_training(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_training(self, client, formrecognizer_storage_container_sas_url): - poller = client.begin_training(training_files_url=container_sas_url, use_training_labels=False, model_name="my unlabeled model") + poller = client.begin_training(training_files_url=formrecognizer_storage_container_sas_url, use_training_labels=False, model_name="my unlabeled model") model = poller.result() self.assertIsNotNone(model.model_id) @@ -78,11 +78,11 @@ def test_training(self, client, container_sas_url): self.assertIsNotNone(field.label) self.assertIsNotNone(field.name) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, multipage=True) - def test_training_multipage(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_training_multipage(self, client, formrecognizer_multipage_storage_container_sas_url): - poller = client.begin_training(container_sas_url, use_training_labels=False) + poller = client.begin_training(formrecognizer_multipage_storage_container_sas_url, use_training_labels=False) model = poller.result() self.assertIsNotNone(model.model_id) @@ -101,9 +101,9 @@ def test_training_multipage(self, client, container_sas_url): self.assertIsNotNone(field.label) self.assertIsNotNone(field.name) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) - def test_training_transform(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_training_transform(self, client, formrecognizer_storage_container_sas_url): raw_response = [] @@ -113,16 +113,16 @@ def callback(response, _, headers): raw_response.append(raw_model) raw_response.append(custom_model) - poller = client.begin_training(training_files_url=container_sas_url, use_training_labels=False, cls=callback) + poller = client.begin_training(training_files_url=formrecognizer_storage_container_sas_url, use_training_labels=False, cls=callback) model = poller.result() raw_model = raw_response[0] custom_model = raw_response[1] self.assertModelTransformCorrect(custom_model, raw_model, unlabeled=True) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, multipage=True) - def test_training_multipage_transform(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_training_multipage_transform(self, client, formrecognizer_multipage_storage_container_sas_url): raw_response = [] @@ -132,18 +132,18 @@ def callback(response, _, headers): raw_response.append(raw_model) raw_response.append(custom_model) - poller = client.begin_training(container_sas_url, use_training_labels=False, cls=callback) + poller = client.begin_training(formrecognizer_multipage_storage_container_sas_url, use_training_labels=False, cls=callback) model = poller.result() raw_model = raw_response[0] custom_model = raw_response[1] self.assertModelTransformCorrect(custom_model, raw_model, unlabeled=True) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) - def test_training_with_labels(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_training_with_labels(self, client, formrecognizer_storage_container_sas_url): - poller = client.begin_training(training_files_url=container_sas_url, use_training_labels=True, model_name="my labeled model") + poller = client.begin_training(training_files_url=formrecognizer_storage_container_sas_url, use_training_labels=True, model_name="my labeled model") model = poller.result() self.assertIsNotNone(model.model_id) @@ -164,11 +164,11 @@ def test_training_with_labels(self, client, container_sas_url): self.assertIsNotNone(field.accuracy) self.assertIsNotNone(field.name) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, multipage=True) - def test_training_multipage_with_labels(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_training_multipage_with_labels(self, client, formrecognizer_multipage_storage_container_sas_url): - poller = client.begin_training(container_sas_url, use_training_labels=True) + poller = client.begin_training(formrecognizer_multipage_storage_container_sas_url, use_training_labels=True) model = poller.result() self.assertIsNotNone(model.model_id) @@ -188,9 +188,9 @@ def test_training_multipage_with_labels(self, client, container_sas_url): self.assertIsNotNone(field.accuracy) self.assertIsNotNone(field.name) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) - def test_training_with_labels_transform(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_training_with_labels_transform(self, client, formrecognizer_storage_container_sas_url): raw_response = [] @@ -200,16 +200,16 @@ def callback(response, _, headers): raw_response.append(raw_model) raw_response.append(custom_model) - poller = client.begin_training(training_files_url=container_sas_url, use_training_labels=True, cls=callback) + poller = client.begin_training(training_files_url=formrecognizer_storage_container_sas_url, use_training_labels=True, cls=callback) model = poller.result() raw_model = raw_response[0] custom_model = raw_response[1] self.assertModelTransformCorrect(custom_model, raw_model) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, multipage=True) - def test_train_multipage_w_labels_transform(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_train_multipage_w_labels_transform(self, client, formrecognizer_multipage_storage_container_sas_url): raw_response = [] @@ -219,48 +219,48 @@ def callback(response, _, headers): raw_response.append(raw_model) raw_response.append(custom_model) - poller = client.begin_training(container_sas_url, use_training_labels=True, cls=callback) + poller = client.begin_training(formrecognizer_multipage_storage_container_sas_url, use_training_labels=True, cls=callback) model = poller.result() raw_model = raw_response[0] custom_model = raw_response[1] self.assertModelTransformCorrect(custom_model, raw_model) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) - def test_training_with_files_filter(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_training_with_files_filter(self, client, formrecognizer_storage_container_sas_url): - poller = client.begin_training(training_files_url=container_sas_url, use_training_labels=False, include_subfolders=True) + poller = client.begin_training(training_files_url=formrecognizer_storage_container_sas_url, use_training_labels=False, include_subfolders=True) model = poller.result() self.assertEqual(len(model.training_documents), 6) self.assertEqual(model.training_documents[-1].name, "subfolder/Form_6.jpg") # we traversed subfolders - poller = client.begin_training(container_sas_url, use_training_labels=False, prefix="subfolder", include_subfolders=True) + poller = client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=False, prefix="subfolder", include_subfolders=True) model = poller.result() self.assertEqual(len(model.training_documents), 1) self.assertEqual(model.training_documents[0].name, "subfolder/Form_6.jpg") # we filtered for only subfolders with pytest.raises(HttpResponseError) as e: - poller = client.begin_training(training_files_url=container_sas_url, use_training_labels=False, prefix="xxx") + poller = client.begin_training(training_files_url=formrecognizer_storage_container_sas_url, use_training_labels=False, prefix="xxx") model = poller.result() self.assertIsNotNone(e.value.error.code) self.assertIsNotNone(e.value.error.message) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) + @FormRecognizerPreparer() + @GlobalClientPreparer() @pytest.mark.live_test_only - def test_training_continuation_token(self, client, container_sas_url): + def test_training_continuation_token(self, client, formrecognizer_storage_container_sas_url): - initial_poller = client.begin_training(training_files_url=container_sas_url, use_training_labels=False) + initial_poller = client.begin_training(training_files_url=formrecognizer_storage_container_sas_url, use_training_labels=False) cont_token = initial_poller.continuation_token() poller = client.begin_training(None, None, continuation_token=cont_token) result = poller.result() self.assertIsNotNone(result) initial_poller.wait() # necessary so azure-devtools doesn't throw assertion error - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, client_kwargs={"api_version": "2.0"}) - def test_training_with_model_name_bad_api_version(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer(client_kwargs={"api_version": "2.0"}) + def test_training_with_model_name_bad_api_version(self, client, formrecognizer_storage_container_sas_url): with pytest.raises(ValueError) as excinfo: poller = client.begin_training(training_files_url="url", use_training_labels=True, model_name="not supported in v2.0") result = poller.result() diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_training_async.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_training_async.py index 1bfe2fa5ecff4..6782fba8e1a4d 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_training_async.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_training_async.py @@ -11,9 +11,9 @@ from azure.ai.formrecognizer._generated.models import Model from azure.ai.formrecognizer._models import CustomFormModel from azure.ai.formrecognizer.aio import FormTrainingClient -from testcase import FormRecognizerTest, GlobalFormRecognizerAccountPreparer +from preparers import FormRecognizerPreparer from asynctestcase import AsyncFormRecognizerTest -from testcase import GlobalClientPreparer as _GlobalClientPreparer +from preparers import GlobalClientPreparer as _GlobalClientPreparer GlobalClientPreparer = functools.partial(_GlobalClientPreparer, FormTrainingClient) @@ -21,24 +21,24 @@ class TestTrainingAsync(AsyncFormRecognizerTest): - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) - async def test_polling_interval(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_polling_interval(self, client, formrecognizer_storage_container_sas_url): def check_poll_value(poll): if self.is_live: self.assertEqual(poll, 5) else: self.assertEqual(poll, 0) check_poll_value(client._client._config.polling_interval) - poller = await client.begin_training(training_files_url=container_sas_url, use_training_labels=False, polling_interval=6) + poller = await client.begin_training(training_files_url=formrecognizer_storage_container_sas_url, use_training_labels=False, polling_interval=6) await poller.wait() self.assertEqual(poller._polling_method._timeout, 6) - poller2 = await client.begin_training(training_files_url=container_sas_url, use_training_labels=False) + poller2 = await client.begin_training(training_files_url=formrecognizer_storage_container_sas_url, use_training_labels=False) await poller2.wait() check_poll_value(poller2._polling_method._timeout) # goes back to client default await client.close() - @GlobalFormRecognizerAccountPreparer() + @FormRecognizerPreparer() @GlobalClientPreparer() async def test_training_encoded_url(self, client): with self.assertRaises(HttpResponseError): @@ -50,21 +50,21 @@ async def test_training_encoded_url(self, client): self.assertIn("https://fakeuri.com/blank%20space", poller._polling_method._initial_response.http_request.body) await poller.wait() - @GlobalFormRecognizerAccountPreparer() - async def test_training_auth_bad_key(self, resource_group, location, form_recognizer_account, form_recognizer_account_key): - client = FormTrainingClient(form_recognizer_account, AzureKeyCredential("xxxx")) + @FormRecognizerPreparer() + async def test_training_auth_bad_key(self, formrecognizer_test_endpoint, formrecognizer_test_api_key): + client = FormTrainingClient(formrecognizer_test_endpoint, AzureKeyCredential("xxxx")) with self.assertRaises(ClientAuthenticationError): async with client: poller = await client.begin_training("xx", use_training_labels=False) result = await poller.result() - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) - async def test_training(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_training(self, client, formrecognizer_storage_container_sas_url): async with client: poller = await client.begin_training( - training_files_url=container_sas_url, + training_files_url=formrecognizer_storage_container_sas_url, use_training_labels=False, model_name="my unlabeled model") model = await poller.result() @@ -86,11 +86,11 @@ async def test_training(self, client, container_sas_url): self.assertIsNotNone(field.label) self.assertIsNotNone(field.name) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, multipage=True) - async def test_training_multipage(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_training_multipage(self, client, formrecognizer_multipage_storage_container_sas_url): async with client: - poller = await client.begin_training(container_sas_url, use_training_labels=False) + poller = await client.begin_training(formrecognizer_multipage_storage_container_sas_url, use_training_labels=False) model = await poller.result() self.assertIsNotNone(model.model_id) @@ -109,9 +109,9 @@ async def test_training_multipage(self, client, container_sas_url): self.assertIsNotNone(field.label) self.assertIsNotNone(field.name) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) - async def test_training_transform(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_training_transform(self, client, formrecognizer_storage_container_sas_url): raw_response = [] @@ -123,7 +123,7 @@ def callback(response, _, headers): async with client: poller = await client.begin_training( - training_files_url=container_sas_url, + training_files_url=formrecognizer_storage_container_sas_url, use_training_labels=False, cls=callback) model = await poller.result() @@ -132,9 +132,9 @@ def callback(response, _, headers): custom_model = raw_response[1] self.assertModelTransformCorrect(custom_model, raw_model, unlabeled=True) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, multipage=True) - async def test_training_multipage_transform(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_training_multipage_transform(self, client, formrecognizer_multipage_storage_container_sas_url): raw_response = [] @@ -145,18 +145,18 @@ def callback(response, _, headers): raw_response.append(custom_model) async with client: - poller = await client.begin_training(container_sas_url, use_training_labels=False, cls=callback) + poller = await client.begin_training(formrecognizer_multipage_storage_container_sas_url, use_training_labels=False, cls=callback) model = await poller.result() raw_model = raw_response[0] custom_model = raw_response[1] self.assertModelTransformCorrect(custom_model, raw_model, unlabeled=True) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) - async def test_training_with_labels(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_training_with_labels(self, client, formrecognizer_storage_container_sas_url): async with client: - poller = await client.begin_training(training_files_url=container_sas_url, use_training_labels=True, model_name="my labeled model") + poller = await client.begin_training(training_files_url=formrecognizer_storage_container_sas_url, use_training_labels=True, model_name="my labeled model") model = await poller.result() self.assertIsNotNone(model.model_id) @@ -176,11 +176,11 @@ async def test_training_with_labels(self, client, container_sas_url): self.assertIsNotNone(field.accuracy) self.assertIsNotNone(field.name) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, multipage=True) - async def test_training_multipage_with_labels(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_training_multipage_with_labels(self, client, formrecognizer_multipage_storage_container_sas_url): async with client: - poller = await client.begin_training(container_sas_url, use_training_labels=True) + poller = await client.begin_training(formrecognizer_multipage_storage_container_sas_url, use_training_labels=True) model = await poller.result() self.assertIsNotNone(model.model_id) @@ -200,9 +200,9 @@ async def test_training_multipage_with_labels(self, client, container_sas_url): self.assertIsNotNone(field.accuracy) self.assertIsNotNone(field.name) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) - async def test_training_with_labels_transform(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_training_with_labels_transform(self, client, formrecognizer_storage_container_sas_url): raw_response = [] @@ -213,16 +213,16 @@ def callback(response, _, headers): raw_response.append(custom_model) async with client: - poller = await client.begin_training(training_files_url=container_sas_url, use_training_labels=True, cls=callback) + poller = await client.begin_training(training_files_url=formrecognizer_storage_container_sas_url, use_training_labels=True, cls=callback) model = await poller.result() raw_model = raw_response[0] custom_model = raw_response[1] self.assertModelTransformCorrect(custom_model, raw_model) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, multipage=True) - async def test_train_multipage_w_lbls_trnsfrm(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_train_multipage_w_lbls_trnsfrm(self, client, formrecognizer_multipage_storage_container_sas_url): raw_response = [] @@ -233,48 +233,48 @@ def callback(response, _, headers): raw_response.append(custom_model) async with client: - poller = await client.begin_training(container_sas_url, use_training_labels=True, cls=callback) + poller = await client.begin_training(formrecognizer_multipage_storage_container_sas_url, use_training_labels=True, cls=callback) model = await poller.result() raw_model = raw_response[0] custom_model = raw_response[1] self.assertModelTransformCorrect(custom_model, raw_model) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) - async def test_training_with_files_filter(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer() + async def test_training_with_files_filter(self, client, formrecognizer_storage_container_sas_url): async with client: - poller = await client.begin_training(training_files_url=container_sas_url, use_training_labels=False, include_subfolders=True) + poller = await client.begin_training(training_files_url=formrecognizer_storage_container_sas_url, use_training_labels=False, include_subfolders=True) model = await poller.result() self.assertEqual(len(model.training_documents), 6) self.assertEqual(model.training_documents[-1].name, "subfolder/Form_6.jpg") # we traversed subfolders - poller = await client.begin_training(container_sas_url, use_training_labels=False, prefix="subfolder", include_subfolders=True) + poller = await client.begin_training(formrecognizer_storage_container_sas_url, use_training_labels=False, prefix="subfolder", include_subfolders=True) model = await poller.result() self.assertEqual(len(model.training_documents), 1) self.assertEqual(model.training_documents[0].name, "subfolder/Form_6.jpg") # we filtered for only subfolders with pytest.raises(HttpResponseError) as e: - poller = await client.begin_training(training_files_url=container_sas_url, use_training_labels=False, prefix="xxx") + poller = await client.begin_training(training_files_url=formrecognizer_storage_container_sas_url, use_training_labels=False, prefix="xxx") model = await poller.result() self.assertIsNotNone(e.value.error.code) self.assertIsNotNone(e.value.error.message) - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True) + @FormRecognizerPreparer() + @GlobalClientPreparer() @pytest.mark.live_test_only - async def test_training_continuation_token(self, client, container_sas_url): + async def test_training_continuation_token(self, client, formrecognizer_storage_container_sas_url): async with client: - initial_poller = await client.begin_training(training_files_url=container_sas_url, use_training_labels=False) + initial_poller = await client.begin_training(training_files_url=formrecognizer_storage_container_sas_url, use_training_labels=False) cont_token = initial_poller.continuation_token() poller = await client.begin_training(None, None, continuation_token=cont_token) result = await poller.result() self.assertIsNotNone(result) await initial_poller.wait() # necessary so azure-devtools doesn't throw assertion error - @GlobalFormRecognizerAccountPreparer() - @GlobalClientPreparer(training=True, client_kwargs={"api_version": "2.0"}) - async def test_training_with_model_name_bad_api_version(self, client, container_sas_url): + @FormRecognizerPreparer() + @GlobalClientPreparer(client_kwargs={"api_version": "2.0"}) + async def test_training_with_model_name_bad_api_version(self, client, formrecognizer_storage_container_sas_url): with pytest.raises(ValueError) as excinfo: poller = await client.begin_training(training_files_url="url", use_training_labels=True, model_name="not supported in v2.0") result = await poller.result() diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/testcase.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/testcase.py index be9e4e19c5114..da065f386a28a 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/testcase.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/testcase.py @@ -6,27 +6,17 @@ # license information. # -------------------------------------------------------------------------- - import os -import time import six -import pytest import logging -from collections import namedtuple -from azure.core.credentials import AzureKeyCredential, AccessToken +from azure.core.credentials import AccessToken from azure.ai.formrecognizer._helpers import ( adjust_value_type, get_element, adjust_confidence, adjust_text_angle ) -from devtools_testutils import ( - AzureTestCase, - AzureMgmtPreparer, - FakeResource, - ResourceGroupPreparer, -) -from devtools_testutils.cognitiveservices_testcase import CognitiveServicesAccountPreparer +from devtools_testutils import AzureTestCase from azure_devtools.scenario_tests import ( RecordingProcessor, ReplayableTest @@ -35,16 +25,6 @@ LOGGING_FORMAT = '%(asctime)s %(name)-20s %(levelname)-5s %(message)s' ENABLE_LOGGER = os.getenv('ENABLE_LOGGER', "False") -REGION = os.getenv('REGION', 'centraluseuap') -ENDPOINT = os.getenv('ENDPOINT', 'None') -NAME = os.getenv('NAME', 'None') -RESOURCE_GROUP = os.getenv('RESOURCE_GROUP', 'None') - - -ResourceGroup = namedtuple( - 'ResourceGroup', - ['name'] -) class RequestBodyReplacer(RecordingProcessor): @@ -64,6 +44,29 @@ def process_request(self, request): return request +class OperationLocationReplacer(RecordingProcessor): + """Replace the location/operation location uri in a request/response body.""" + + def __init__(self): + self._replacement = "https://region.api.cognitive.microsoft.com/formrecognizer/" + + def process_response(self, response): + try: + headers = response['headers'] + location_header = None + if 'operation-location' in headers: + location_header = "operation-location" + if 'location' in headers: + location_header = "location" + if location_header: + if len(headers[location_header]) > 0: + suffix = headers[location_header][0].split("/formrecognizer/")[1] + response['headers'][location_header] = [self._replacement + suffix] + return response + except (KeyError, ValueError): + return response + + class AccessTokenReplacer(RecordingProcessor): """Replace the access token in a request/response body.""" @@ -110,21 +113,36 @@ def __init__(self, method_name): self.vcr.match_on = ["path", "method", "query"] self.recording_processors.append(AccessTokenReplacer()) self.recording_processors.append(RequestBodyReplacer()) + self.recording_processors.append(OperationLocationReplacer()) self.configure_logging() # URL samples - self.receipt_url_jpg = "https://raw.githubusercontent.com/Azure/azure-sdk-for-python/master/sdk/formrecognizer/azure-ai-formrecognizer/tests/sample_forms/receipt/contoso-allinone.jpg" - self.receipt_url_png = "https://raw.githubusercontent.com/Azure/azure-sdk-for-python/master/sdk/formrecognizer/azure-ai-formrecognizer/tests/sample_forms/receipt/contoso-receipt.png" - self.business_card_url_jpg = "https://raw.githubusercontent.com/Azure/azure-sdk-for-python/master/sdk/formrecognizer/azure-ai-formrecognizer/tests/sample_forms/business_cards/business-card-english.jpg" - self.business_card_url_png = "https://raw.githubusercontent.com/Azure/azure-sdk-for-python/master/sdk/formrecognizer/azure-ai-formrecognizer/tests/sample_forms/business_cards/business-card-english.png" - self.business_card_multipage_url_pdf = "https://raw.githubusercontent.com/Azure/azure-sdk-for-python/master/sdk/formrecognizer/azure-ai-formrecognizer/tests/sample_forms/business_cards/business-card-multipage.pdf" - self.invoice_url_pdf = "https://raw.githubusercontent.com/Azure/azure-sdk-for-python/master/sdk/formrecognizer/azure-ai-formrecognizer/tests/sample_forms/forms/Invoice_1.pdf" - self.invoice_url_tiff = "https://raw.githubusercontent.com/Azure/azure-sdk-for-python/master/sdk/formrecognizer/azure-ai-formrecognizer/tests/sample_forms/forms/Invoice_1.tiff" - self.multipage_vendor_url_pdf = "https://raw.githubusercontent.com/Azure/azure-sdk-for-python/master/sdk/formrecognizer/azure-ai-formrecognizer/tests/sample_forms/forms/multi1.pdf" - self.form_url_jpg = "https://raw.githubusercontent.com/Azure/azure-sdk-for-python/master/sdk/formrecognizer/azure-ai-formrecognizer/tests/sample_forms/forms/Form_1.jpg" - self.multipage_url_pdf = "https://raw.githubusercontent.com/Azure/azure-sdk-for-python/master/sdk/formrecognizer/azure-ai-formrecognizer/tests/sample_forms/forms/multipage_invoice1.pdf" - self.multipage_table_url_pdf = "https://raw.githubusercontent.com/Azure/azure-sdk-for-python/master/sdk/formrecognizer/azure-ai-formrecognizer/tests/sample_forms/forms/multipagelayout.pdf" - self.selection_mark_url_pdf = "https://raw.githubusercontent.com/Azure/azure-sdk-for-python/master/sdk/formrecognizer/azure-ai-formrecognizer/tests/sample_forms/forms/selection_mark_form.pdf" + # self.receipt_url_jpg = "https://raw.githubusercontent.com/Azure/azure-sdk-for-python/master/sdk/formrecognizer/azure-ai-formrecognizer/tests/sample_forms/receipt/contoso-allinone.jpg" + # self.receipt_url_png = "https://raw.githubusercontent.com/Azure/azure-sdk-for-python/master/sdk/formrecognizer/azure-ai-formrecognizer/tests/sample_forms/receipt/contoso-receipt.png" + # self.business_card_url_jpg = "https://raw.githubusercontent.com/Azure/azure-sdk-for-python/master/sdk/formrecognizer/azure-ai-formrecognizer/tests/sample_forms/business_cards/business-card-english.jpg" + # self.business_card_url_png = "https://raw.githubusercontent.com/Azure/azure-sdk-for-python/master/sdk/formrecognizer/azure-ai-formrecognizer/tests/sample_forms/business_cards/business-card-english.png" + # self.business_card_multipage_url_pdf = "https://raw.githubusercontent.com/Azure/azure-sdk-for-python/master/sdk/formrecognizer/azure-ai-formrecognizer/tests/sample_forms/business_cards/business-card-multipage.pdf" + # self.invoice_url_pdf = "https://raw.githubusercontent.com/Azure/azure-sdk-for-python/master/sdk/formrecognizer/azure-ai-formrecognizer/tests/sample_forms/forms/Invoice_1.pdf" + # self.invoice_url_tiff = "https://raw.githubusercontent.com/Azure/azure-sdk-for-python/master/sdk/formrecognizer/azure-ai-formrecognizer/tests/sample_forms/forms/Invoice_1.tiff" + # self.multipage_vendor_url_pdf = "https://raw.githubusercontent.com/Azure/azure-sdk-for-python/master/sdk/formrecognizer/azure-ai-formrecognizer/tests/sample_forms/forms/multi1.pdf" + # self.form_url_jpg = "https://raw.githubusercontent.com/Azure/azure-sdk-for-python/master/sdk/formrecognizer/azure-ai-formrecognizer/tests/sample_forms/forms/Form_1.jpg" + # self.multipage_url_pdf = "https://raw.githubusercontent.com/Azure/azure-sdk-for-python/master/sdk/formrecognizer/azure-ai-formrecognizer/tests/sample_forms/forms/multipage_invoice1.pdf" + # self.multipage_table_url_pdf = "https://raw.githubusercontent.com/Azure/azure-sdk-for-python/master/sdk/formrecognizer/azure-ai-formrecognizer/tests/sample_forms/forms/multipagelayout.pdf" + # self.selection_mark_url_pdf = "https://raw.githubusercontent.com/Azure/azure-sdk-for-python/master/sdk/formrecognizer/azure-ai-formrecognizer/tests/sample_forms/forms/selection_mark_form.pdf" + + testing_container_sas_url = os.getenv("FORMRECOGNIZER_TESTING_DATA_CONTAINER_SAS_URL") + self.receipt_url_jpg = self.get_blob_url(testing_container_sas_url, "testingdata", "contoso-allinone.jpg") + self.receipt_url_png = self.get_blob_url(testing_container_sas_url, "testingdata", "contoso-receipt.png") + self.business_card_url_jpg = self.get_blob_url(testing_container_sas_url, "testingdata", "businessCard.jpg") + self.business_card_url_png = self.get_blob_url(testing_container_sas_url, "testingdata", "businessCard.png") + self.business_card_multipage_url_pdf = self.get_blob_url(testing_container_sas_url, "testingdata", "business-card-multipage.pdf") + self.invoice_url_pdf = self.get_blob_url(testing_container_sas_url, "testingdata", "Invoice_1.pdf") + self.invoice_url_tiff = self.get_blob_url(testing_container_sas_url, "testingdata", "Invoice_1.tiff") + self.multipage_vendor_url_pdf = self.get_blob_url(testing_container_sas_url, "testingdata", "multi1.pdf") + self.form_url_jpg = self.get_blob_url(testing_container_sas_url, "testingdata", "Form_1.jpg") + self.multipage_url_pdf = self.get_blob_url(testing_container_sas_url, "testingdata", "multipage_invoice1.pdf") + self.multipage_table_url_pdf = self.get_blob_url(testing_container_sas_url, "testingdata", "multipagelayout.pdf") + self.selection_mark_url_pdf = self.get_blob_url(testing_container_sas_url, "testingdata", "selection_mark_form.pdf") # file stream samples self.receipt_jpg = os.path.abspath(os.path.join(os.path.abspath(__file__), "..", "./sample_forms/receipt/contoso-allinone.jpg")) @@ -142,6 +160,19 @@ def __init__(self, method_name): self.multipage_vendor_pdf = os.path.abspath(os.path.join(os.path.abspath(__file__), "..", "./sample_forms/forms/multi1.pdf")) self.selection_form_pdf = os.path.abspath(os.path.join(os.path.abspath(__file__), "..", "./sample_forms/forms/selection_mark_form.pdf")) + def get_blob_url(self, container_sas_url, container, file_name): + if self.is_live: + url = container_sas_url.split(container) + url[0] += container + "/" + file_name + blob_sas_url = url[0] + url[1] + self.scrubber.register_name_pair( + blob_sas_url, + "blob_sas_url" + ) + else: + blob_sas_url = "blob_sas_url" + return blob_sas_url + def get_oauth_endpoint(self): return self.get_settings_value("FORM_RECOGNIZER_AAD_ENDPOINT") @@ -521,248 +552,3 @@ def assertLabeledRecognizedFormHasValues(self, form, model): self.assertIsNotNone(field.name) self.assertIsNotNone(field.value_data.text) self.assertIsNotNone(field.value_data.bounding_box) - - -class GlobalResourceGroupPreparer(AzureMgmtPreparer): - def __init__(self): - super(GlobalResourceGroupPreparer, self).__init__( - name_prefix='', - random_name_length=42 - ) - - def create_resource(self, name, **kwargs): - rg = FormRecognizerTest._RESOURCE_GROUP - if self.is_live: - self.test_class_instance.scrubber.register_name_pair( - rg.name, - "rgname" - ) - else: - rg = FakeResource( - name="rgname", - id="/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgname" - ) - - return { - 'location': REGION, - 'resource_group': rg, - } - - -class GlobalFormRecognizerAccountPreparer(AzureMgmtPreparer): - def __init__(self): - super(GlobalFormRecognizerAccountPreparer, self).__init__( - name_prefix='', - random_name_length=42 - ) - - def create_resource(self, name, **kwargs): - form_recognizer_account = FormRecognizerTest._FORM_RECOGNIZER_ACCOUNT - return { - 'location': REGION, - 'resource_group': FormRecognizerTest._RESOURCE_GROUP, - 'form_recognizer_account': form_recognizer_account, - 'form_recognizer_account_key': FormRecognizerTest._FORM_RECOGNIZER_KEY - } - - -class GlobalClientPreparer(AzureMgmtPreparer): - def __init__(self, client_cls, client_kwargs={}, **kwargs): - super(GlobalClientPreparer, self).__init__( - name_prefix='', - random_name_length=42 - ) - self.client_kwargs = client_kwargs - self.client_cls = client_cls - self.training = kwargs.get("training", False) - self.multipage_test = kwargs.get("multipage", False) - self.multipage_test_2 = kwargs.get("multipage2", False) - self.selection_marks = kwargs.get("selection_marks", False) - self.need_blob_sas_url = kwargs.get("blob_sas_url", False) - self.copy = kwargs.get("copy", False) - self.language = kwargs.get("language", None) - - def _load_settings(self): - try: - from devtools_testutils import mgmt_settings_real as real_settings - return real_settings - except ImportError: - return False - - def get_settings_value(self, key): - key_value = os.environ.get("AZURE_"+key, None) - self._real_settings = self._load_settings() - - if key_value and self._real_settings and getattr(self._real_settings, key) != key_value: - raise ValueError( - "You have both AZURE_{key} env variable and mgmt_settings_real.py for {key} to difference values" - .format(key=key)) - - if not key_value: - try: - key_value = getattr(self._real_settings, key) - except Exception: - print("Could not get {}".format(key)) - raise - return key_value - - def get_blob_url(self, container_sas_url, container, file_name): - url = container_sas_url.split(container) - url[0] += container + "/" + file_name - blob_sas_url = url[0] + url[1] - self.test_class_instance.scrubber.register_name_pair( - blob_sas_url, - "blob_sas_url" - ) - return blob_sas_url - - def get_training_parameters(self, client): - if self.is_live: - if self.multipage_test: - container_sas_url = self.get_settings_value("FORM_RECOGNIZER_MULTIPAGE_STORAGE_CONTAINER_SAS_URL") - blob_sas_url = self.get_blob_url(container_sas_url, "multipage-training-data", "multipage_invoice1.pdf") - - elif self.multipage_test_2: - container_sas_url = self.get_settings_value("FORM_RECOGNIZER_MULTIPAGE_STORAGE_CONTAINER_SAS_URL_2") - blob_sas_url = self.get_blob_url(container_sas_url, "multipage-vendor-forms", "multi1.pdf") - - elif self.selection_marks: - container_sas_url = self.get_settings_value("FORM_RECOGNIZER_SELECTION_MARK_STORAGE_CONTAINER_SAS_URL") - blob_sas_url = None - else: - container_sas_url = self.get_settings_value("FORM_RECOGNIZER_STORAGE_CONTAINER_SAS_URL") - blob_sas_url = None - - self.test_class_instance.scrubber.register_name_pair( - container_sas_url, - "containersasurl" - ) - else: - container_sas_url = "containersasurl" - blob_sas_url = "blob_sas_url" - - if self.need_blob_sas_url: - return {"client": client, - "container_sas_url": container_sas_url, - "blob_sas_url": blob_sas_url} - else: - return {"client": client, - "container_sas_url": container_sas_url} - - def get_copy_parameters(self, training_params, client, **kwargs): - if self.is_live: - resource_group = kwargs.get("resource_group") - subscription_id = self.get_settings_value("SUBSCRIPTION_ID") - form_recognizer_name = FormRecognizerTest._FORM_RECOGNIZER_NAME - - resource_id = "/subscriptions/" + subscription_id + "/resourceGroups/" + resource_group.name + \ - "/providers/Microsoft.CognitiveServices/accounts/" + form_recognizer_name - resource_location = REGION - self.test_class_instance.scrubber.register_name_pair( - resource_id, - "resource_id" - ) - else: - resource_location = REGION - resource_id = "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgname/providers/Microsoft.CognitiveServices/accounts/frname" - - return { - "client": client, - "container_sas_url": training_params["container_sas_url"], - "location": resource_location, - "resource_id": resource_id - } - - def create_resource(self, name, **kwargs): - client = self.create_form_client(**kwargs) - - if self.language: - if self.is_live: - container_sas_url = self.get_settings_value("FORM_RECOGNIZER_TESTING_DATA_CONTAINER_SAS_URL") - form_name = "content_" + self.language + ".pdf" - blob_sas_url = self.get_blob_url(container_sas_url, "testingdata", form_name) - else: - blob_sas_url = "blob_sas_url" - return { - "client": client, - "language_form": blob_sas_url - } - - if not self.training: - return {"client": client} - - training_params = self.get_training_parameters(client) - - if self.copy: - return self.get_copy_parameters(training_params, client, **kwargs) - - return training_params - - def create_form_client(self, **kwargs): - form_recognizer_account = self.client_kwargs.pop("form_recognizer_account", None) - if form_recognizer_account is None: - form_recognizer_account = kwargs.pop("form_recognizer_account") - - form_recognizer_account_key = self.client_kwargs.pop("form_recognizer_account_key", None) - if form_recognizer_account_key is None: - form_recognizer_account_key = kwargs.pop("form_recognizer_account_key") - - if self.is_live: - polling_interval = 5 - else: - polling_interval = 0 - - return self.client_cls( - form_recognizer_account, - AzureKeyCredential(form_recognizer_account_key), - polling_interval=polling_interval, - logging_enable=True if ENABLE_LOGGER == "True" else False, - **self.client_kwargs - ) - - -@pytest.fixture(scope="session") -def form_recognizer_account(): - # temp allow an existing resource to be used instead of creating an FR resource on the fly - if ENDPOINT != "None": - FormRecognizerTest._FORM_RECOGNIZER_ACCOUNT = ENDPOINT - if REGION == "centraluseuap": - FormRecognizerTest._FORM_RECOGNIZER_KEY = os.getenv("AZURE_FORM_RECOGNIZER_PYTHON_CANARY_API_KEY") - else: - FormRecognizerTest._FORM_RECOGNIZER_KEY = os.getenv("AZURE_FORM_RECOGNIZER_PYTHON_API_KEY") - FormRecognizerTest._FORM_RECOGNIZER_NAME = NAME - FormRecognizerTest._RESOURCE_GROUP = ResourceGroup(name=RESOURCE_GROUP) - yield - else: - test_case = AzureTestCase("__init__") - rg_preparer = ResourceGroupPreparer(random_name_enabled=True, name_prefix='pycog', location=REGION) - form_recognizer_preparer = CognitiveServicesAccountPreparer( - random_name_enabled=True, - kind="formrecognizer", - name_prefix='pycog', - location=REGION - ) - - try: - rg_name, rg_kwargs = rg_preparer._prepare_create_resource(test_case) - FormRecognizerTest._RESOURCE_GROUP = rg_kwargs['resource_group'] - try: - form_recognizer_name, form_recognizer_kwargs = form_recognizer_preparer._prepare_create_resource( - test_case, **rg_kwargs) - if test_case.is_live: - time.sleep(600) # current ask until race condition bug fixed - FormRecognizerTest._FORM_RECOGNIZER_ACCOUNT = form_recognizer_kwargs['cognitiveservices_account'] - FormRecognizerTest._FORM_RECOGNIZER_KEY = form_recognizer_kwargs['cognitiveservices_account_key'] - FormRecognizerTest._FORM_RECOGNIZER_NAME = form_recognizer_name - yield - finally: - form_recognizer_preparer.remove_resource( - form_recognizer_name, - resource_group=rg_kwargs['resource_group'] - ) - FormRecognizerTest._FORM_RECOGNIZER_ACCOUNT = None - FormRecognizerTest._FORM_RECOGNIZER_KEY = None - - finally: - rg_preparer.remove_resource(rg_name) - FormRecognizerTest._RESOURCE_GROUP = None diff --git a/sdk/formrecognizer/test-resources-post.ps1 b/sdk/formrecognizer/test-resources-post.ps1 new file mode 100644 index 0000000000000..f4e00a1bee83b --- /dev/null +++ b/sdk/formrecognizer/test-resources-post.ps1 @@ -0,0 +1,6 @@ +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. + +# Current ask from service team to wait after creating resource + +Start-Sleep -s 600 \ No newline at end of file diff --git a/sdk/formrecognizer/test-resources.json b/sdk/formrecognizer/test-resources.json new file mode 100644 index 0000000000000..7d0fe6f71d57a --- /dev/null +++ b/sdk/formrecognizer/test-resources.json @@ -0,0 +1,231 @@ +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "baseName": { + "type": "string", + "defaultValue": "[resourceGroup().name]", + "metadata": { + "description": "The base resource name." + } + }, + "location": { + "type": "string", + "defaultValue": "[resourceGroup().location]", + "metadata": { + "metadata": { + "description": "The location of the resource. By default, this is the same as the resource group." + } + } + }, + "testApplicationOid": { + "type": "string", + "metadata": { + "description": "The principal to assign the role to. This is application object id." + } + }, + "tenantId": { + "type": "String", + "metadata": { + "description": "The tenant id to which the application and resources belong." + } + }, + "testApplicationId": { + "type": "String", + "metadata": { + "description": "The application client id used to run tests." + } + }, + "testApplicationSecret": { + "type": "String", + "metadata": { + "description": "The application client secret used to run tests." + } + }, + "formRecognizerEndpointSuffix": { + "defaultValue": ".cognitiveservices.azure.com/", + "type": "String" + }, + "blobStorageAccount": { + "type": "string", + "defaultValue": "azuresdktrainingdata" + }, + "trainingDataContainer": { + "type": "string", + "defaultValue": "trainingdata" + }, + "blobResourceId": { + "type": "string", + "defaultValue": "[resourceId('2cd617ea-1866-46b1-90e3-fffb087ebf9b', 'TrainingData', 'Microsoft.Storage/storageAccounts', parameters('blobStorageAccount'))]" + }, + "trainingDataSasProperties": { + "type": "object", + "defaultValue": { + "canonicalizedResource": "[concat('/blob/', parameters('blobStorageAccount'), '/', parameters('trainingDataContainer'))]", + "signedExpiry": "[dateTimeAdd(utcNow('u'), 'PT2H')]", + "signedPermission": "rl", + "signedResource": "c" + } + }, + "testingDataContainer": { + "type": "string", + "defaultValue": "testingdata" + }, + "selectionMarkTrainingDataContainer": { + "type": "string", + "defaultValue": "selectionmark" + }, + "testingDataSasProperties": { + "type": "object", + "defaultValue": { + "canonicalizedResource": "[concat('/blob/', parameters('blobStorageAccount'), '/', parameters('testingDataContainer'))]", + "signedExpiry": "[dateTimeAdd(utcNow('u'), 'PT2H')]", + "signedPermission": "rl", + "signedResource": "c" + } + }, + "multiPageTestingDataContainer": { + "type": "string", + "defaultValue": "multipage-training-data" + }, + "multiPageTestingDataSasProperties": { + "type": "object", + "defaultValue": { + "canonicalizedResource": "[concat('/blob/', parameters('blobStorageAccount'), '/', parameters('multiPageTestingDataContainer'))]", + "signedExpiry": "[dateTimeAdd(utcNow('u'), 'PT2H')]", + "signedPermission": "rl", + "signedResource": "c" + } + }, + "multiPageTestingDataContainer2": { + "type": "string", + "defaultValue": "multipage-vendor-forms" + }, + "multiPageTestingDataSasProperties2": { + "type": "object", + "defaultValue": { + "canonicalizedResource": "[concat('/blob/', parameters('blobStorageAccount'), '/', parameters('multiPageTestingDataContainer2'))]", + "signedExpiry": "[dateTimeAdd(utcNow('u'), 'PT2H')]", + "signedPermission": "rl", + "signedResource": "c" + } + }, + "selectionMarkTrainingDataSasProperties": { + "type": "object", + "defaultValue": { + "canonicalizedResource": "[concat('/blob/', parameters('blobStorageAccount'), '/', parameters('selectionMarkTrainingDataContainer'))]", + "signedExpiry": "[dateTimeAdd(utcNow('u'), 'PT2H')]", + "signedPermission": "rl", + "signedResource": "c" + } + } + }, + "variables": { + "authorizationApiVersion": "2018-09-01-preview", + "formRecognizerBaseName": "[concat('formrecognizer', parameters('baseName'))]", + "formRecognizerApiVersion": "2017-04-18", + "azureFormRecognizerUrl": "[concat('https://', variables('formRecognizerBaseName'), parameters('formRecognizerEndpointSuffix'))]", + "cognitiveServiceUserRoleId": "[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Authorization/roleDefinitions/a97b65f3-24c7-4388-baec-2e87135dc908')]" + }, + "resources": [ + { + "type": "Microsoft.Authorization/roleAssignments", + "apiVersion": "[variables('authorizationApiVersion')]", + "name": "[guid(concat(variables('cognitiveServiceUserRoleId'), variables('formRecognizerBaseName')))]", + "dependsOn": [ + "[variables('formRecognizerBaseName')]" + ], + "properties": { + "principalId": "[parameters('testApplicationOid')]", + "roleDefinitionId": "[variables('cognitiveServiceUserRoleId')]" + } + }, + { + "type": "Microsoft.CognitiveServices/accounts", + "name": "[variables('formRecognizerBaseName')]", + "apiVersion": "[variables('formRecognizerApiVersion')]", + "sku": { + "name": "S0" + }, + "kind": "FormRecognizer", + "location": "[parameters('location')]", + "properties": { + "customSubDomainName": "[variables('formRecognizerBaseName')]" + } + } + ], + "outputs": { + "AZURE_TENANT_ID": { + "type": "String", + "value": "[parameters('tenantId')]" + }, + "AZURE_CLIENT_ID": { + "type": "String", + "value": "[parameters('testApplicationId')]" + }, + "AZURE_CLIENT_SECRET": { + "type": "String", + "value": "[parameters('testApplicationSecret')]" + }, + "FORMRECOGNIZER_NAME": { + "type": "string", + "value": "[variables('formRecognizerBaseName')]" + }, + "FORMRECOGNIZER_TEST_API_KEY": { + "type": "string", + "value": "[listKeys(resourceId('Microsoft.CognitiveServices/accounts', variables('formRecognizerBaseName')), variables('formRecognizerApiVersion')).key1]" + }, + "FORMRECOGNIZER_TEST_ENDPOINT": { + "type": "string", + "value": "[variables('azureFormRecognizerUrl')]" + }, + "FORMRECOGNIZER_STORAGE_CONTAINER_SAS_URL": { + "type": "string", + "value": "[concat(reference(parameters('blobResourceId'), '2019-06-01').primaryEndpoints.blob, parameters('trainingDataContainer'), '?', listServiceSas(parameters('blobResourceId'), '2019-06-01', parameters('trainingDataSasProperties')).serviceSasToken)]" + }, + "FORMRECOGNIZER_TESTING_DATA_CONTAINER_SAS_URL": { + "type": "string", + "value": "[concat(reference(parameters('blobResourceId'), '2019-06-01').primaryEndpoints.blob, parameters('testingDataContainer'), '?', listServiceSas(parameters('blobResourceId'), '2019-06-01', parameters('testingDataSasProperties')).serviceSasToken)]" + }, + "FORMRECOGNIZER_MULTIPAGE_STORAGE_CONTAINER_SAS_URL": { + "type": "string", + "value": "[concat(reference(parameters('blobResourceId'), '2019-06-01').primaryEndpoints.blob, parameters('multiPageTestingDataContainer'), '?', listServiceSas(parameters('blobResourceId'), '2019-06-01', parameters('multiPageTestingDataSasProperties')).serviceSasToken)]" + }, + "FORMRECOGNIZER_MULTIPAGE_STORAGE_CONTAINER_SAS_URL_2": { + "type": "string", + "value": "[concat(reference(parameters('blobResourceId'), '2019-06-01').primaryEndpoints.blob, parameters('multiPageTestingDataContainer2'), '?', listServiceSas(parameters('blobResourceId'), '2019-06-01', parameters('multiPageTestingDataSasProperties2')).serviceSasToken)]" + }, + "FORMRECOGNIZER_SELECTION_MARK_STORAGE_CONTAINER_SAS_URL": { + "type": "string", + "value": "[concat(reference(parameters('blobResourceId'), '2019-06-01').primaryEndpoints.blob, parameters('selectionMarkTrainingDataContainer'), '?', listServiceSas(parameters('blobResourceId'), '2019-06-01', parameters('selectionMarkTrainingDataSasProperties')).serviceSasToken)]" + }, + "FORMRECOGNIZER_REGION": { + "type": "string", + "value": "[parameters('location')]" + }, + "FORMRECOGNIZER_RESOURCE_ID": { + "type": "string", + "value": "[resourceId('Microsoft.CognitiveServices/accounts', variables('formRecognizerBaseName'))]" + }, + "CONTAINER_SAS_URL": { + "type": "string", + "value": "[concat(reference(parameters('blobResourceId'), '2019-06-01').primaryEndpoints.blob, parameters('trainingDataContainer'), '?', listServiceSas(parameters('blobResourceId'), '2019-06-01', parameters('trainingDataSasProperties')).serviceSasToken)]" + }, + "PURCHASE_ORDER_OFFICE_SUPPLIES_SAS_URL": { + "type": "string", + "value": "[concat(reference(parameters('blobResourceId'), '2019-06-01').primaryEndpoints.blob, parameters('trainingDataContainer'), '?', listServiceSas(parameters('blobResourceId'), '2019-06-01', parameters('trainingDataSasProperties')).serviceSasToken)]" + }, + "PURCHASE_ORDER_OFFICE_EQUIPMENT_SAS_URL": { + "type": "string", + "value": "[concat(reference(parameters('blobResourceId'), '2019-06-01').primaryEndpoints.blob, parameters('trainingDataContainer'), '?', listServiceSas(parameters('blobResourceId'), '2019-06-01', parameters('trainingDataSasProperties')).serviceSasToken)]" + }, + "PURCHASE_ORDER_OFFICE_FURNITURE_SAS_URL": { + "type": "string", + "value": "[concat(reference(parameters('blobResourceId'), '2019-06-01').primaryEndpoints.blob, parameters('trainingDataContainer'), '?', listServiceSas(parameters('blobResourceId'), '2019-06-01', parameters('trainingDataSasProperties')).serviceSasToken)]" + }, + "PURCHASE_ORDER_OFFICE_CLEANING_SUPPLIES_SAS_URL": { + "type": "string", + "value": "[concat(reference(parameters('blobResourceId'), '2019-06-01').primaryEndpoints.blob, parameters('trainingDataContainer'), '?', listServiceSas(parameters('blobResourceId'), '2019-06-01', parameters('trainingDataSasProperties')).serviceSasToken)]" + } + } +} \ No newline at end of file diff --git a/sdk/formrecognizer/tests.yml b/sdk/formrecognizer/tests.yml index 07c8fe885c45d..c8fb4752ded5b 100644 --- a/sdk/formrecognizer/tests.yml +++ b/sdk/formrecognizer/tests.yml @@ -1,90 +1,104 @@ trigger: none +parameters: +- name: CloudConfigurations + type: object + default: + prod: + SubscriptionConfiguration: $(sub-config-azure-cloud-test-resources) + Location: $(LOCATION) + canary: + SubscriptionConfiguration: $(sub-config-azure-cloud-test-resources) + Location: 'centraluseuap' +- name: RunFilter + displayName: RunFilter + type: string + default: 'both' + values: + - 'both' + - 'canary' + - 'prod' + stages: - - template: ../../eng/pipelines/templates/stages/archetype-sdk-tests.yml - parameters: - BuildTargetingString: azure-ai-formrecognizer - ServiceDirectory: formrecognizer - TestTimeoutInMinutes: 200 - TestSamples: true - # This is a specific request from the formrecognizer service team - # their claim is that the full matrix ends up stress-testing their service. - # As such, the canary test runs should run on a reduced matrix. - ${{ if contains(variables['Build.DefinitionName'], 'prod') }}: - Matrix: - Linux_Python35: - Pool: azsdk-pool-mms-ubuntu-1804-general - OSVmImage: MMSUbuntu18.04 - PythonVersion: '3.5' - CoverageArg: '--disablecov' - MacOs_Python37: - Pool: Azure Pipelines - OSVmImage: 'macOS-10.15' - PythonVersion: '3.7' - CoverageArg: '--disablecov' - Windows_Python27: - Pool: azsdk-pool-mms-win-2019-general - OSVmImage: MMS2019 - PythonVersion: '2.7' - CoverageArg: '--disablecov' - Linux_PyPy3: - Pool: azsdk-pool-mms-ubuntu-1804-general - OSVmImage: MMSUbuntu18.04 - PythonVersion: 'pypy3' - CoverageArg: '--disablecov' - Linux_Python39: - Pool: azsdk-pool-mms-ubuntu-1804-general - OSVmImage: MMSUbuntu18.04 - PythonVersion: '3.9' - CoverageArg: '' - ${{ if not(contains(variables['Build.DefinitionName'], 'prod')) }}: - Matrix: - Linux_Python35: - Pool: azsdk-pool-mms-ubuntu-1804-general - OSVmImage: MMSUbuntu18.04 - PythonVersion: '3.5' - CoverageArg: '--disablecov' - Windows_Python27: - Pool: azsdk-pool-mms-win-2019-general - OSVmImage: MMS2019 - PythonVersion: '2.7' - CoverageArg: '--disablecov' - Linux_Python39: - Pool: azsdk-pool-mms-ubuntu-1804-general - OSVmImage: MMSUbuntu18.04 - PythonVersion: '3.9' - CoverageArg: '' - EnvVars: - AZURE_FORM_RECOGNIZER_PYTHON_CANARY_API_KEY: $(python-formrecognizer-test-canary-api-key) - AZURE_FORM_RECOGNIZER_PYTHON_API_KEY: $(python-formrecognizer-test-api-key) - AZURE_SUBSCRIPTION_ID: $(provisioner-subscription) - AZURE_TENANT_ID: $(aad-azure-sdk-test-tenant-id) - AZURE_CLIENT_SECRET: $(aad-azure-sdk-test-client-secret) - AZURE_CLIENT_ID: $(aad-azure-sdk-test-client-id) - AZURE_FORM_RECOGNIZER_STORAGE_CONTAINER_SAS_URL: $(python-formrecognizer-test-storage-sas-url) - AZURE_FORM_RECOGNIZER_MULTIPAGE_STORAGE_CONTAINER_SAS_URL: $(python-formrecognizer-test-storage-multipage-sas-url) - AZURE_FORM_RECOGNIZER_MULTIPAGE_STORAGE_CONTAINER_SAS_URL_2: $(python-formrecognizer-test-storage-multipage-sas-url2) - AZURE_FORM_RECOGNIZER_SELECTION_MARK_STORAGE_CONTAINER_SAS_URL: $(python-formrecognizer-test-selection-mark-storage-sas-url) - AZURE_FORM_RECOGNIZER_TESTING_DATA_CONTAINER_SAS_URL: $(python-formrecognizer-test-storage-testing-data-sas-url) - AZURE_FORM_RECOGNIZER_AAD_ENDPOINT: $(python-formrecognizer-test-aad-endpoint) - # EnvVars for samples to run. Mostly re-used from above values - AZURE_FORM_RECOGNIZER_ENDPOINT: $(python-formrecognizer-test-endpoint) - AZURE_FORM_RECOGNIZER_KEY: $(python-formrecognizer-test-endpoint-key) - CONTAINER_SAS_URL: $(python-formrecognizer-test-storage-sas-url) - CUSTOM_TRAINED_MODEL_ID: $(python-formrecognizer-test-model-trained-without-labels) - AZURE_SOURCE_MODEL_ID: $(python-formrecognizer-test-model-trained-with-labels) - ID_OF_MODEL_TRAINED_WITH_LABELS: $(python-formrecognizer-test-model-trained-with-labels) - ID_OF_MODEL_TRAINED_WITHOUT_LABELS: $(python-formrecognizer-test-model-trained-without-labels) - AZURE_FORM_RECOGNIZER_SOURCE_ENDPOINT: $(python-formrecognizer-test-endpoint) - AZURE_FORM_RECOGNIZER_SOURCE_KEY: $(python-formrecognizer-test-endpoint-key) - AZURE_FORM_RECOGNIZER_TARGET_ENDPOINT: $(python-formrecognizer-test-endpoint) - AZURE_FORM_RECOGNIZER_TARGET_KEY: $(python-formrecognizer-test-endpoint-key) - AZURE_FORM_RECOGNIZER_TARGET_REGION: $(python-formrecognizer-test-target-region) - AZURE_FORM_RECOGNIZER_TARGET_RESOURCE_ID: $(python-formrecognizer-test-target-resource-id) - PURCHASE_ORDER_OFFICE_SUPPLIES_SAS_URL: $(python-formrecognizer-test-storage-sas-url) - PURCHASE_ORDER_OFFICE_EQUIPMENT_SAS_URL: $(python-formrecognizer-test-storage-sas-url) - PURCHASE_ORDER_OFFICE_FURNITURE_SAS_URL: $(python-formrecognizer-test-storage-sas-url) - PURCHASE_ORDER_OFFICE_CLEANING_SUPPLIES_SAS_URL: $(python-formrecognizer-test-storage-sas-url) - TEST_MODE: 'RunLiveNoRecord' - AZURE_SKIP_LIVE_RECORDING: 'True' - AZURE_TEST_RUN_LIVE: 'true' +- ${{ each cloud in parameters.CloudConfigurations }}: + - stage: ${{ cloud.key }} + condition: or(eq('${{parameters.RunFilter}}', 'both'), eq('${{parameters.RunFilter}}', '${{cloud.key}}')) + jobs: + - template: ../../eng/pipelines/templates/jobs/archetype-sdk-tests.yml + parameters: + BuildTargetingString: azure-ai-formrecognizer + ServiceDirectory: formrecognizer + DeployArmTemplate: true + TestTimeoutInMinutes: 200 + TestSamples: true + Location: '${{cloud.value.Location}}' + # This is a specific request from the formrecognizer service team + # their claim is that the full matrix ends up stress-testing their service. + # As such, the canary test runs should run on a reduced matrix. + ${{ if eq(cloud.key, 'prod') }}: + Matrix: + Linux_Python35: + Pool: azsdk-pool-mms-ubuntu-1804-general + OSVmImage: MMSUbuntu18.04 + PythonVersion: '3.5' + CoverageArg: '--disablecov' + MacOs_Python37: + Pool: Azure Pipelines + OSVmImage: 'macOS-10.15' + PythonVersion: '3.7' + CoverageArg: '--disablecov' + Windows_Python27: + Pool: azsdk-pool-mms-win-2019-general + OSVmImage: MMS2019 + PythonVersion: '2.7' + CoverageArg: '--disablecov' + Linux_PyPy3: + Pool: azsdk-pool-mms-ubuntu-1804-general + OSVmImage: MMSUbuntu18.04 + PythonVersion: 'pypy3' + CoverageArg: '--disablecov' + Linux_Python39: + Pool: azsdk-pool-mms-ubuntu-1804-general + OSVmImage: MMSUbuntu18.04 + PythonVersion: '3.9' + CoverageArg: '' + ${{ if eq(cloud.key, 'canary') }}: + Matrix: + Linux_Python35: + Pool: azsdk-pool-mms-ubuntu-1804-general + OSVmImage: MMSUbuntu18.04 + PythonVersion: '3.5' + CoverageArg: '--disablecov' + Windows_Python27: + Pool: azsdk-pool-mms-win-2019-general + OSVmImage: MMS2019 + PythonVersion: '2.7' + CoverageArg: '--disablecov' + Linux_Python39: + Pool: azsdk-pool-mms-ubuntu-1804-general + OSVmImage: MMSUbuntu18.04 + PythonVersion: '3.9' + CoverageArg: '' + EnvVars: + AZURE_SUBSCRIPTION_ID: $(provisioner-subscription) + AZURE_TENANT_ID: $(aad-azure-sdk-test-tenant-id) + AZURE_CLIENT_SECRET: $(aad-azure-sdk-test-client-secret) + AZURE_CLIENT_ID: $(aad-azure-sdk-test-client-id) + TEST_MODE: 'RunLiveNoRecord' + AZURE_SKIP_LIVE_RECORDING: 'True' + AZURE_TEST_RUN_LIVE: 'true' + REGION: '${{cloud.value.Location}}' + # EnvVars for samples to run. TODO: These use an existing FR resource. Fix samples so they don't have to + AZURE_FORM_RECOGNIZER_AAD_ENDPOINT: $(python-formrecognizer-test-aad-endpoint) + AZURE_FORM_RECOGNIZER_ENDPOINT: $(python-formrecognizer-test-endpoint) + AZURE_FORM_RECOGNIZER_KEY: $(python-formrecognizer-test-endpoint-key) + CUSTOM_TRAINED_MODEL_ID: $(python-formrecognizer-test-model-trained-without-labels) + AZURE_SOURCE_MODEL_ID: $(python-formrecognizer-test-model-trained-with-labels) + ID_OF_MODEL_TRAINED_WITH_LABELS: $(python-formrecognizer-test-model-trained-with-labels) + ID_OF_MODEL_TRAINED_WITHOUT_LABELS: $(python-formrecognizer-test-model-trained-without-labels) + AZURE_FORM_RECOGNIZER_SOURCE_ENDPOINT: $(python-formrecognizer-test-endpoint) + AZURE_FORM_RECOGNIZER_SOURCE_KEY: $(python-formrecognizer-test-endpoint-key) + AZURE_FORM_RECOGNIZER_TARGET_ENDPOINT: $(python-formrecognizer-test-endpoint) + AZURE_FORM_RECOGNIZER_TARGET_KEY: $(python-formrecognizer-test-endpoint-key) + AZURE_FORM_RECOGNIZER_TARGET_REGION: $(python-formrecognizer-test-target-region) + AZURE_FORM_RECOGNIZER_TARGET_RESOURCE_ID: $(python-formrecognizer-test-target-resource-id)