Skip to content

Commit 9bbd54c

Browse files
[formrecognizer] Migrate to test proxy (Azure#21822)
* use assert in testcase * replace with assert is not none * update remaining assertions * initial test proxy work * add ci.yml update * temp * temp * test fixes * change assert for error * rstrip endpoint * add sanitizers * clean up replacers and FormRecognizerTest, move test vars * use pytest.raises * update test_business_card.py * add business card recordings * replace blob sas urls * fix deleted receipt test * update business card tests * update content tests * update custom forms tests * update custom model tests * update container url sanitizer and custom model import * update general document tests * update layout tests * delete business card recordings * remove all old recordings * update dac prebuilt tests * rstrip async client endpoint * add oauth functions back in * update compose tests * skip copy model tests * update dmac mgmt tests * update dmac training tests * update ftc compose tests * update ftc copy model * update conftest access token sanitizer * update ftc mgmt tests * update ftc training tests * update get children tests * update frc identity doc tests * update frc invoice tests * update frc receipt tests * update multiapi tests * clean up empty recordings * remove extra empty recording * update preparer values to match recordings * dont check for body matching in requests that change during playback * add playback condition in _get_blob_url * default testing_container_sas_url * set bodiless matcher for url tests * set bodiless matcher for mgmt tests using DMAC and FTC * move rstrip up in code * remove unused code from conftest.py * make large file tests run only live * add missing imports * remove extra space * remove some more large recordings * add missing recording * add more recordings
1 parent 6a69430 commit 9bbd54c

File tree

745 files changed

+622245
-268907
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

745 files changed

+622245
-268907
lines changed

sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/_form_base_client.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,11 @@
2323
class FormRecognizerClientBase(object):
2424
def __init__(self, endpoint, credential, **kwargs):
2525
# type: (str, Union[AzureKeyCredential, TokenCredential], Any) -> None
26+
try:
27+
endpoint = endpoint.rstrip("/")
28+
except AttributeError:
29+
raise ValueError("Parameter 'endpoint' must be a string.")
30+
2631
self._endpoint = endpoint
2732
self._credential = credential
2833
self._api_version = kwargs.pop("api_version", None)

sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/aio/_form_base_client_async.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,12 @@ def __init__(
3434
credential: Union["AzureKeyCredential", "AsyncTokenCredential"],
3535
**kwargs: Any
3636
) -> None:
37+
38+
try:
39+
endpoint = endpoint.rstrip("/")
40+
except AttributeError:
41+
raise ValueError("Parameter 'endpoint' must be a string.")
42+
3743
self._endpoint = endpoint
3844
self._credential = credential
3945
self._api_version = kwargs.pop("api_version", None)
@@ -74,6 +80,7 @@ def __init__(
7480
"api-version",
7581
}
7682
)
83+
7784
self._client = FormRecognizer(
7885
endpoint=endpoint,
7986
credential=credential, # type: ignore

sdk/formrecognizer/azure-ai-formrecognizer/tests/conftest.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,46 @@
66
# license information.
77
# --------------------------------------------------------------------------
88

9+
import pytest
910
import sys
11+
from devtools_testutils import add_remove_header_sanitizer, add_general_regex_sanitizer, add_oauth_response_sanitizer, add_body_key_sanitizer, test_proxy
1012

1113
# Ignore async tests for Python < 3.6
1214
collect_ignore_glob = []
1315
if sys.version_info < (3, 6):
1416
collect_ignore_glob.append("*_async.py")
17+
18+
@pytest.fixture(scope="session", autouse=True)
19+
def add_sanitizers(test_proxy):
20+
add_remove_header_sanitizer(headers="Ocp-Apim-Subscription-Key")
21+
add_general_regex_sanitizer(
22+
value="fakeendpoint",
23+
regex="(?<=\\/\\/)[a-z-]+(?=\\.cognitiveservices\\.azure\\.com)"
24+
)
25+
add_oauth_response_sanitizer()
26+
add_body_key_sanitizer(
27+
json_path="urlSource",
28+
value="blob_sas_url",
29+
regex="(?<=\\/\\/)[a-z-]+(?=\\.blob\\.core\\.windows\\.net)(.*)$",
30+
)
31+
add_body_key_sanitizer(
32+
json_path="azureBlobSource.containerUrl",
33+
value="blob_sas_url",
34+
regex="(?<=\\/\\/)[a-z-]+(?=\\.blob\\.core\\.windows\\.net)(.*)$",
35+
)
36+
add_body_key_sanitizer(
37+
json_path="source",
38+
value="blob_sas_url",
39+
regex="(?<=\\/\\/)[a-z-]+(?=\\.blob\\.core\\.windows\\.net)(.*)$",
40+
)
41+
add_body_key_sanitizer(
42+
json_path="accessToken",
43+
value="redacted",
44+
regex="([0-9a-f-]{36})",
45+
)
46+
47+
add_body_key_sanitizer(
48+
json_path="copyAuthorization.accessToken",
49+
value="redacted",
50+
regex="([0-9a-f-]{36})",
51+
)

sdk/formrecognizer/azure-ai-formrecognizer/tests/preparers.py

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -18,21 +18,21 @@
1818
FormRecognizerPreparer = functools.partial(
1919
PowerShellPreparer,
2020
'formrecognizer',
21-
formrecognizer_test_endpoint="https://region.api.cognitive.microsoft.com/",
21+
formrecognizer_test_endpoint="https://fakeendpoint.cognitiveservices.azure.com",
2222
formrecognizer_test_api_key="fakeZmFrZV9hY29jdW50X2tleQ==",
23-
formrecognizer_storage_container_sas_url="container_sas_url",
24-
formrecognizer_testing_data_container_sas_url="container_sas_url",
25-
formrecognizer_multipage_storage_container_sas_url="container_sas_url",
26-
formrecognizer_multipage_storage_container_sas_url_2="container_sas_url",
27-
formrecognizer_selection_mark_storage_container_sas_url="container_sas_url",
28-
formrecognizer_table_variable_rows_container_sas_url="container_sas_url",
29-
formrecognizer_table_fixed_rows_container_sas_url="container_sas_url",
30-
formrecognizer_storage_container_sas_url_v2="container_sas_url",
31-
formrecognizer_multipage_storage_container_sas_url_v2="container_sas_url",
32-
formrecognizer_multipage_storage_container_sas_url_2_v2="container_sas_url",
33-
formrecognizer_selection_mark_storage_container_sas_url_v2="container_sas_url",
34-
formrecognizer_table_variable_rows_container_sas_url_v2="container_sas_url",
35-
formrecognizer_table_fixed_rows_container_sas_url_v2="container_sas_url",
23+
formrecognizer_storage_container_sas_url="https://blob_sas_url",
24+
formrecognizer_testing_data_container_sas_url="https://blob_sas_url",
25+
formrecognizer_multipage_storage_container_sas_url="https://blob_sas_url",
26+
formrecognizer_multipage_storage_container_sas_url_2="https://blob_sas_url",
27+
formrecognizer_selection_mark_storage_container_sas_url="https://blob_sas_url",
28+
formrecognizer_table_variable_rows_container_sas_url="https://blob_sas_url",
29+
formrecognizer_table_fixed_rows_container_sas_url="https://blob_sas_url",
30+
formrecognizer_storage_container_sas_url_v2="https://blob_sas_url",
31+
formrecognizer_multipage_storage_container_sas_url_v2="https://blob_sas_url",
32+
formrecognizer_multipage_storage_container_sas_url_2_v2="https://blob_sas_url",
33+
formrecognizer_selection_mark_storage_container_sas_url_v2="https://blob_sas_url",
34+
formrecognizer_table_variable_rows_container_sas_url_v2="https://blob_sas_url",
35+
formrecognizer_table_fixed_rows_container_sas_url_v2="https://blob_sas_url",
3636
formrecognizer_resource_id="/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rgname/providers/Microsoft.CognitiveServices/accounts/frname",
3737
formrecognizer_region="region"
3838
)
@@ -53,7 +53,7 @@ def create_resource(self, name, **kwargs):
5353
form_recognizer_account_key = os.environ["FORMRECOGNIZER_TEST_API_KEY"]
5454
polling_interval = 5
5555
else:
56-
form_recognizer_account = "https://region.api.cognitive.microsoft.com/"
56+
form_recognizer_account = "https://fakeendpoint.cognitiveservices.azure.com"
5757
form_recognizer_account_key = "fakeZmFrZV9hY29jdW50X2tleQ=="
5858
polling_interval = 0
5959

sdk/formrecognizer/azure-ai-formrecognizer/tests/recordings/test_business_card.pyTestBusinessCardtest_business_card_jpg_include_field_elements.json

Lines changed: 1126 additions & 0 deletions
Large diffs are not rendered by default.

sdk/formrecognizer/azure-ai-formrecognizer/tests/recordings/test_business_card.pyTestBusinessCardtest_business_card_multipage_pdf.json

Lines changed: 1543 additions & 0 deletions
Large diffs are not rendered by default.

sdk/formrecognizer/azure-ai-formrecognizer/tests/recordings/test_business_card.test_business_card_jpg_include_field_elements.yaml

Lines changed: 0 additions & 199 deletions
This file was deleted.

0 commit comments

Comments
 (0)