diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/README.md b/sdk/formrecognizer/azure-ai-formrecognizer/README.md index b45877f59319..38616171c473 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/README.md +++ b/sdk/formrecognizer/azure-ai-formrecognizer/README.md @@ -476,7 +476,7 @@ These code samples show common scenario operations with the Azure Form Recognize * Train a model with labels: [sample_train_model_with_labels.py][sample_train_model_with_labels] * Manage custom models: [sample_manage_custom_models.py][sample_manage_custom_models] * Copy a model between Form Recognizer resources: [sample_copy_model.py][sample_copy_model] -* Create a composed model from a collection of models trained with labels: |[sample_create_composed_model.py][sample_create_composed_model] +* Create a composed model from a collection of models trained with labels: [sample_create_composed_model.py][sample_create_composed_model] ### Async APIs This library also includes a complete async API supported on Python 3.5+. To use it, you must diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/_form_recognizer_client.py b/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/_form_recognizer_client.py index 9eea9fd5eef1..ecca1e6a7c0e 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/_form_recognizer_client.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/_form_recognizer_client.py @@ -96,6 +96,7 @@ def begin_recognize_receipts(self, receipt, **kwargs): object to return a list[:class:`~azure.ai.formrecognizer.RecognizedForm`]. :rtype: ~azure.core.polling.LROPoller[list[~azure.ai.formrecognizer.RecognizedForm]] :raises ~azure.core.exceptions.HttpResponseError: + .. versionadded:: v2.1-preview The *locale* keyword argument @@ -156,6 +157,7 @@ def begin_recognize_receipts_from_url(self, receipt_url, **kwargs): object to return a list[:class:`~azure.ai.formrecognizer.RecognizedForm`]. :rtype: ~azure.core.polling.LROPoller[list[~azure.ai.formrecognizer.RecognizedForm]] :raises ~azure.core.exceptions.HttpResponseError: + .. versionadded:: v2.1-preview The *locale* keyword argument @@ -219,6 +221,9 @@ def begin_recognize_business_cards( :rtype: ~azure.core.polling.LROPoller[list[~azure.ai.formrecognizer.RecognizedForm]] :raises ~azure.core.exceptions.HttpResponseError: + .. versionadded:: v2.1-preview + The *begin_recognize_business_cards* client method + .. admonition:: Example: .. literalinclude:: ../samples/sample_recognize_business_cards.py @@ -281,6 +286,10 @@ def begin_recognize_business_cards_from_url( object to return a list[:class:`~azure.ai.formrecognizer.RecognizedForm`]. :rtype: ~azure.core.polling.LROPoller[list[~azure.ai.formrecognizer.RecognizedForm]] :raises ~azure.core.exceptions.HttpResponseError: + + .. versionadded:: v2.1-preview + The *begin_recognize_business_cards_from_url* client method + """ include_field_elements = kwargs.pop("include_field_elements", False) @@ -334,6 +343,9 @@ def begin_recognize_invoices( :rtype: ~azure.core.polling.LROPoller[list[~azure.ai.formrecognizer.RecognizedForm]] :raises ~azure.core.exceptions.HttpResponseError: + .. versionadded:: v2.1-preview + The *begin_recognize_invoices* client method + .. admonition:: Example: .. literalinclude:: ../samples/sample_recognize_invoices.py @@ -393,6 +405,9 @@ def begin_recognize_invoices_from_url( object to return a list[:class:`~azure.ai.formrecognizer.RecognizedForm`]. :rtype: ~azure.core.polling.LROPoller[list[~azure.ai.formrecognizer.RecognizedForm]] :raises ~azure.core.exceptions.HttpResponseError: + + .. versionadded:: v2.1-preview + The *begin_recognize_invoices_from_url* client method """ include_field_elements = kwargs.pop("include_field_elements", False) @@ -446,6 +461,7 @@ def begin_recognize_content(self, form, **kwargs): object to return a list[:class:`~azure.ai.formrecognizer.FormPage`]. :rtype: ~azure.core.polling.LROPoller[list[~azure.ai.formrecognizer.FormPage]] :raises ~azure.core.exceptions.HttpResponseError: + .. versionadded:: v2.1-preview The *pages* and *language* keyword arguments @@ -513,6 +529,7 @@ def begin_recognize_content_from_url(self, form_url, **kwargs): object to return a list[:class:`~azure.ai.formrecognizer.FormPage`]. :rtype: ~azure.core.polling.LROPoller[list[~azure.ai.formrecognizer.FormPage]] :raises ~azure.core.exceptions.HttpResponseError: + .. versionadded:: v2.1-preview The *pages* and *language* keyword arguments """ diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/_form_training_client.py b/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/_form_training_client.py index 61f400485ae6..a9bd42b395e7 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/_form_training_client.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/_form_training_client.py @@ -107,6 +107,7 @@ def begin_training(self, training_files_url, use_training_labels, **kwargs): :raises ~azure.core.exceptions.HttpResponseError: Note that if the training fails, the exception is raised, but a model with an "invalid" status is still created. You can delete this model by calling :func:`~delete_model()` + .. versionadded:: v2.1-preview The *model_name* keyword argument @@ -403,6 +404,9 @@ def begin_create_composed_model( :rtype: ~azure.core.polling.LROPoller[~azure.ai.formrecognizer.CustomFormModel] :raises ~azure.core.exceptions.HttpResponseError: + .. versionadded:: v2.1-preview + The *begin_create_composed_model* client method + .. admonition:: Example: .. literalinclude:: ../samples/sample_create_composed_model.py diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/_models.py b/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/_models.py index e864132209e5..f54bebb42034 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/_models.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/_models.py @@ -196,6 +196,7 @@ class RecognizedForm(object): :ivar list[~azure.ai.formrecognizer.FormPage] pages: A list of pages recognized from the input document. Contains lines, words, tables and page metadata. + .. versionadded:: v2.1-preview The *form_type_confidence* and *model_id* properties """ @@ -370,6 +371,7 @@ class FormPage(object): logic should be built upon the actual line location instead of order. :ivar selection_marks: List of selection marks extracted from the page. :vartype selection_marks: list[~azure.ai.formrecognizer.FormSelectionMark] + .. versionadded:: v2.1-preview *selection_marks* property """ @@ -415,6 +417,7 @@ class FormLine(FormElement): :ivar str kind: For FormLine, this is "line". :ivar appearance: Text appearance properties. :vartype appearance: ~azure.ai.formrecognizer.Appearance + .. versionadded:: v2.1-preview *appearance* property """ @@ -549,6 +552,7 @@ class FormTable(object): that outlines the table. The points are listed in clockwise order: top-left, top-right, bottom-right, bottom-left. Units are in pixels for images and inches for PDF. + .. versionadded:: v2.1-preview The *bounding_box* property. """ @@ -669,6 +673,7 @@ class CustomFormModel(object): :ivar str model_name: Optional user defined model name. :ivar properties: Optional model properties. :vartype properties: ~azure.ai.formrecognizer.CustomFormModelProperties + .. versionadded:: v2.1-preview The *model_name* and *properties* properties. """ @@ -747,6 +752,7 @@ class CustomFormSubmodel(object): is generated for each field. :vartype fields: dict[str, ~azure.ai.formrecognizer.CustomFormModelField] :ivar str form_type: Type of form this submodel recognizes. + .. versionadded:: v2.1-preview The *model_id* property """ @@ -861,6 +867,7 @@ class TrainingDocumentInfo(object): List of any errors for document. :ivar str model_id: The model ID that used the document to train. + .. versionadded:: v2.1-preview The *model_id* property """ @@ -947,6 +954,7 @@ class CustomFormModelInfo(object): :vartype model_name: str :ivar properties: Optional model properties. :vartype properties: ~azure.ai.formrecognizer.CustomFormModelProperties + .. versionadded:: v2.1-preview The *model_name* and *properties* properties """ diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/aio/_form_recognizer_client_async.py b/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/aio/_form_recognizer_client_async.py index 0fcd1f952a6e..36914d22a710 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/aio/_form_recognizer_client_async.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/aio/_form_recognizer_client_async.py @@ -96,6 +96,7 @@ async def begin_recognize_receipts( object to return a list[:class:`~azure.ai.formrecognizer.RecognizedForm`]. :rtype: ~azure.core.polling.AsyncLROPoller[list[~azure.ai.formrecognizer.RecognizedForm]] :raises ~azure.core.exceptions.HttpResponseError: + .. versionadded:: v2.1-preview The *locale* keyword argument @@ -159,6 +160,7 @@ async def begin_recognize_receipts_from_url( object to return a list[:class:`~azure.ai.formrecognizer.RecognizedForm`]. :rtype: ~azure.core.polling.AsyncLROPoller[list[~azure.ai.formrecognizer.RecognizedForm]] :raises ~azure.core.exceptions.HttpResponseError: + .. versionadded:: v2.1-preview The *locale* keyword argument @@ -222,6 +224,9 @@ async def begin_recognize_business_cards( :rtype: ~azure.core.polling.AsyncLROPoller[list[~azure.ai.formrecognizer.RecognizedForm]] :raises ~azure.core.exceptions.HttpResponseError: + .. versionadded:: v2.1-preview + The *begin_recognize_business_cards* client method + .. admonition:: Example: .. literalinclude:: ../samples/async_samples/sample_recognize_business_cards_async.py @@ -283,6 +288,10 @@ async def begin_recognize_business_cards_from_url( object to return a list[:class:`~azure.ai.formrecognizer.RecognizedForm`]. :rtype: ~azure.core.polling.AsyncLROPoller[list[~azure.ai.formrecognizer.RecognizedForm]] :raises ~azure.core.exceptions.HttpResponseError: + + .. versionadded:: v2.1-preview + The *begin_recognize_business_cards_from_url* client method + """ include_field_elements = kwargs.pop("include_field_elements", False) @@ -334,6 +343,8 @@ async def begin_recognize_invoices( :rtype: ~azure.core.polling.AsyncLROPoller[list[~azure.ai.formrecognizer.RecognizedForm]] :raises ~azure.core.exceptions.HttpResponseError: + .. versionadded:: v2.1-preview + The *begin_recognize_invoices* client method .. admonition:: Example: @@ -393,6 +404,9 @@ async def begin_recognize_invoices_from_url( object to return a list[:class:`~azure.ai.formrecognizer.RecognizedForm`]. :rtype: ~azure.core.polling.AsyncLROPoller[list[~azure.ai.formrecognizer.RecognizedForm]] :raises ~azure.core.exceptions.HttpResponseError: + + .. versionadded:: v2.1-preview + The *begin_recognize_invoices_from_url* client method """ include_field_elements = kwargs.pop("include_field_elements", False) @@ -449,6 +463,7 @@ async def begin_recognize_content( object to return a list[:class:`~azure.ai.formrecognizer.FormPage`]. :rtype: ~azure.core.polling.AsyncLROPoller[list[~azure.ai.formrecognizer.FormPage]] :raises ~azure.core.exceptions.HttpResponseError: + .. versionadded:: v2.1-preview The *pages* and *language* keyword arguments @@ -515,6 +530,7 @@ async def begin_recognize_content_from_url(self, form_url: str, **kwargs: Any) - object to return a list[:class:`~azure.ai.formrecognizer.FormPage`]. :rtype: ~azure.core.polling.AsyncLROPoller[list[~azure.ai.formrecognizer.FormPage]] :raises ~azure.core.exceptions.HttpResponseError: + .. versionadded:: v2.1-preview The *pages* and *language* keyword arguments """ diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/aio/_form_training_client_async.py b/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/aio/_form_training_client_async.py index 47909064aa20..78d13cdac819 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/aio/_form_training_client_async.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/aio/_form_training_client_async.py @@ -108,6 +108,7 @@ async def begin_training( :raises ~azure.core.exceptions.HttpResponseError: Note that if the training fails, the exception is raised, but a model with an "invalid" status is still created. You can delete this model by calling :func:`~delete_model()` + .. versionadded:: v2.1-preview The *model_name* keyword argument @@ -414,6 +415,9 @@ async def begin_create_composed_model( :rtype: ~azure.core.polling.AsyncLROPoller[~azure.ai.formrecognizer.CustomFormModel] :raises ~azure.core.exceptions.HttpResponseError: + .. versionadded:: v2.1-preview + The *begin_create_composed_model* client method + .. admonition:: Example: .. literalinclude:: ../samples/async_samples/sample_create_composed_model_async.py 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 d9b7ac69743d..a51739627ee1 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_business_card.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_business_card.py @@ -162,7 +162,7 @@ def callback(raw_response, _, headers): read_results = raw_response.analyze_result.read_results document_results = raw_response.analyze_result.document_results - self.assertBusinessCardTransformCorrect(business_card, actual, read_results) + self.assertFormFieldsTransformCorrect(business_card, actual, read_results) # check page range self.assertEqual(business_card.page_range.first_page_number, document_results[0].page_range[0]) @@ -200,7 +200,7 @@ def callback(raw_response, _, headers): document_results = raw_response.analyze_result.document_results page_results = raw_response.analyze_result.page_results - self.assertBusinessCardTransformCorrect(business_card, actual, read_results) + self.assertFormFieldsTransformCorrect(business_card, actual, read_results) # check page range self.assertEqual(business_card.page_range.first_page_number, document_results[0].page_range[0]) @@ -242,7 +242,7 @@ def callback(raw_response, _, headers): for i in range(len(returned_model)): business_card = returned_model[i] actual = document_results[i] - self.assertBusinessCardTransformCorrect(business_card, actual.fields, read_results) + self.assertFormFieldsTransformCorrect(business_card, actual.fields, read_results) self.assertEqual(i + 1, business_card.page_range.first_page_number) self.assertEqual(i + 1, business_card.page_range.last_page_number) 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 329d30aa381b..43e9734a69e1 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 @@ -176,7 +176,7 @@ def callback(raw_response, _, headers): read_results = raw_response.analyze_result.read_results document_results = raw_response.analyze_result.document_results - self.assertBusinessCardTransformCorrect(business_card, actual, read_results) + self.assertFormFieldsTransformCorrect(business_card, actual, read_results) # check page range self.assertEqual(business_card.page_range.first_page_number, document_results[0].page_range[0]) @@ -215,7 +215,7 @@ def callback(raw_response, _, headers): document_results = raw_response.analyze_result.document_results page_results = raw_response.analyze_result.page_results - self.assertBusinessCardTransformCorrect(business_card, actual, read_results) + self.assertFormFieldsTransformCorrect(business_card, actual, read_results) # check page range self.assertEqual(business_card.page_range.first_page_number, document_results[0].page_range[0]) @@ -258,7 +258,7 @@ def callback(raw_response, _, headers): for i in range(len(returned_model)): business_card = returned_model[i] actual = document_results[i] - self.assertBusinessCardTransformCorrect(business_card, actual.fields, read_results) + self.assertFormFieldsTransformCorrect(business_card, actual.fields, read_results) self.assertEqual(i + 1, business_card.page_range.first_page_number) self.assertEqual(i + 1, business_card.page_range.last_page_number) 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 44323655e2b0..852394727d14 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 @@ -99,7 +99,7 @@ def callback(raw_response, _, headers): read_results = raw_response.analyze_result.read_results document_results = raw_response.analyze_result.document_results - self.assertBusinessCardTransformCorrect(business_card, actual, read_results) + self.assertFormFieldsTransformCorrect(business_card, actual, read_results) # check page range self.assertEqual(business_card.page_range.first_page_number, document_results[0].page_range[0]) @@ -134,7 +134,7 @@ def callback(raw_response, _, headers): document_results = raw_response.analyze_result.document_results page_results = raw_response.analyze_result.page_results - self.assertBusinessCardTransformCorrect(business_card, actual, read_results) + self.assertFormFieldsTransformCorrect(business_card, actual, read_results) # check page range self.assertEqual(business_card.page_range.first_page_number, document_results[0].page_range[0]) @@ -173,7 +173,7 @@ def callback(raw_response, _, headers): for i in range(len(returned_model)): business_card = returned_model[i] actual = document_results[i] - self.assertBusinessCardTransformCorrect(business_card, actual.fields, read_results) + self.assertFormFieldsTransformCorrect(business_card, actual.fields, read_results) self.assertEqual(i + 1, business_card.page_range.first_page_number) self.assertEqual(i + 1, business_card.page_range.last_page_number) 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 8710f6a14270..a5e3aa32a4cb 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 @@ -109,7 +109,7 @@ def callback(raw_response, _, headers): read_results = raw_response.analyze_result.read_results document_results = raw_response.analyze_result.document_results - self.assertBusinessCardTransformCorrect(business_card, actual, read_results) + self.assertFormFieldsTransformCorrect(business_card, actual, read_results) # check page range self.assertEqual(business_card.page_range.first_page_number, document_results[0].page_range[0]) @@ -145,7 +145,7 @@ def callback(raw_response, _, headers): document_results = raw_response.analyze_result.document_results page_results = raw_response.analyze_result.page_results - self.assertBusinessCardTransformCorrect(business_card, actual, read_results) + self.assertFormFieldsTransformCorrect(business_card, actual, read_results) # check page range self.assertEqual(business_card.page_range.first_page_number, document_results[0].page_range[0]) @@ -185,7 +185,7 @@ def callback(raw_response, _, headers): for i in range(len(returned_model)): business_card = returned_model[i] actual = document_results[i] - self.assertBusinessCardTransformCorrect(business_card, actual.fields, read_results) + self.assertFormFieldsTransformCorrect(business_card, actual.fields, read_results) self.assertEqual(i + 1, business_card.page_range.first_page_number) self.assertEqual(i + 1, business_card.page_range.last_page_number) 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 fa87ee545623..6b3681b00ae3 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_custom_forms.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_custom_forms.py @@ -324,7 +324,7 @@ def callback(raw_response, _, headers): self.assertEqual(recognized_form[0].page_range.last_page_number, page_results[0].page) self.assertEqual(recognized_form[0].form_type_confidence, 1.0) self.assertIsNotNone(recognized_form[0].model_id) - self.assertLabeledFormFieldDictTransformCorrect(recognized_form[0].fields, actual_fields, read_results) + self.assertFormFieldsTransformCorrect(recognized_form[0].fields, actual_fields, read_results) @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer(training=True, multipage=True) @@ -365,7 +365,7 @@ def callback(raw_response, _, headers): self.assertEqual(form.form_type, "custom:"+model.model_id) self.assertEqual(form.form_type_confidence, 1.0) self.assertEqual(form.model_id, model.model_id) - self.assertLabeledFormFieldDictTransformCorrect(form.fields, actual.fields, read_results) + self.assertFormFieldsTransformCorrect(form.fields, actual.fields, read_results) @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer(training=True) @@ -470,7 +470,7 @@ def callback(raw_response, _, headers): self.assertEqual(form.form_type, "custom:"+model.model_id) self.assertEqual(form.form_type_confidence, 1.0) self.assertEqual(form.model_id, model.model_id) - self.assertLabeledFormFieldDictTransformCorrect(form.fields, actual.fields, read_results) + self.assertFormFieldsTransformCorrect(form.fields, actual.fields, read_results) @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer(training=True, selection_marks=True) 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 080b165b472f..737889e09757 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 @@ -353,7 +353,7 @@ def callback(raw_response, _, headers): self.assertEqual(recognized_form[0].page_range.last_page_number, page_results[0].page) self.assertEqual(recognized_form[0].form_type_confidence, 1.0) self.assertIsNotNone(recognized_form[0].model_id) - self.assertLabeledFormFieldDictTransformCorrect(recognized_form[0].fields, actual_fields, read_results) + self.assertFormFieldsTransformCorrect(recognized_form[0].fields, actual_fields, read_results) @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer(training=True, multipage=True) @@ -397,7 +397,7 @@ def callback(raw_response, _, headers): self.assertEqual(form.form_type, "custom:"+model.model_id) self.assertEqual(form.form_type_confidence, 1.0) self.assertEqual(form.model_id, model.model_id) - self.assertLabeledFormFieldDictTransformCorrect(form.fields, actual.fields, read_results) + self.assertFormFieldsTransformCorrect(form.fields, actual.fields, read_results) @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer(training=True) @@ -509,7 +509,7 @@ def callback(raw_response, _, headers): self.assertEqual(form.form_type, "custom:"+model.model_id) self.assertEqual(form.form_type_confidence, 1.0) self.assertEqual(form.model_id, model.model_id) - self.assertLabeledFormFieldDictTransformCorrect(form.fields, actual.fields, read_results) + self.assertFormFieldsTransformCorrect(form.fields, actual.fields, read_results) @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer(training=True, selection_marks=True) 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 0c6f73e252a1..310a09e70c68 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 @@ -267,7 +267,7 @@ def callback(raw_response, _, headers): self.assertEqual(recognized_form[0].page_range.last_page_number, page_results[0].page) self.assertEqual(recognized_form[0].form_type_confidence, 1.0) self.assertIsNotNone(recognized_form[0].model_id) - self.assertLabeledFormFieldDictTransformCorrect(recognized_form[0].fields, actual_fields, read_results) + self.assertFormFieldsTransformCorrect(recognized_form[0].fields, actual_fields, read_results) @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer(training=True, multipage=True, blob_sas_url=True) @@ -305,7 +305,7 @@ def callback(raw_response, _, headers): self.assertEqual(form.form_type, "custom:"+model.model_id) self.assertEqual(form.form_type_confidence, 1.0) self.assertEqual(form.model_id, model.model_id) - self.assertLabeledFormFieldDictTransformCorrect(form.fields, actual.fields, read_results) + self.assertFormFieldsTransformCorrect(form.fields, actual.fields, read_results) @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer(training=True) @@ -404,7 +404,7 @@ def callback(raw_response, _, headers): self.assertEqual(form.form_type, "custom:"+model.model_id) self.assertEqual(form.form_type_confidence, 1.0) self.assertEqual(form.model_id, model.model_id) - self.assertLabeledFormFieldDictTransformCorrect(form.fields, actual.fields, read_results) + self.assertFormFieldsTransformCorrect(form.fields, actual.fields, read_results) @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer(training=True, selection_marks=True) 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 48c630128fe4..3b79e2b25cdf 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 @@ -297,7 +297,7 @@ def callback(raw_response, _, headers): self.assertEqual(recognized_form[0].page_range.last_page_number, page_results[0].page) self.assertEqual(recognized_form[0].form_type_confidence, 1.0) self.assertIsNotNone(recognized_form[0].model_id) - self.assertLabeledFormFieldDictTransformCorrect(recognized_form[0].fields, actual_fields, read_results) + self.assertFormFieldsTransformCorrect(recognized_form[0].fields, actual_fields, read_results) @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer(training=True, multipage=True, blob_sas_url=True) @@ -338,7 +338,7 @@ def callback(raw_response, _, headers): self.assertEqual(form.form_type, "custom:"+model.model_id) self.assertEqual(form.form_type_confidence, 1.0) self.assertEqual(form.model_id, model.model_id) - self.assertLabeledFormFieldDictTransformCorrect(form.fields, actual.fields, read_results) + self.assertFormFieldsTransformCorrect(form.fields, actual.fields, read_results) @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer(training=True) @@ -441,7 +441,7 @@ def callback(raw_response, _, headers): self.assertEqual(form.form_type, "custom:"+model.model_id) self.assertEqual(form.form_type_confidence, 1.0) self.assertEqual(form.model_id, model.model_id) - self.assertLabeledFormFieldDictTransformCorrect(form.fields, actual.fields, read_results) + self.assertFormFieldsTransformCorrect(form.fields, actual.fields, read_results) @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer(training=True, selection_marks=True) diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_invoice.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_invoice.py index cab423fca46b..88078a858683 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_invoice.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_invoice.py @@ -160,15 +160,16 @@ def callback(raw_response, _, headers): actual = raw_response.analyze_result.document_results[0].fields read_results = raw_response.analyze_result.read_results document_results = raw_response.analyze_result.document_results + page_results = raw_response.analyze_result.page_results - self.assertInvoiceTransformCorrect(invoice, actual, read_results) + self.assertFormFieldsTransformCorrect(invoice.fields, actual, read_results) # check page range self.assertEqual(invoice.page_range.first_page_number, document_results[0].page_range[0]) self.assertEqual(invoice.page_range.last_page_number, document_results[0].page_range[1]) # Check page metadata - self.assertFormPagesTransformCorrect(invoice.pages, read_results) + self.assertFormPagesTransformCorrect(invoice.pages, read_results, page_results) @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer() @@ -197,15 +198,16 @@ def callback(raw_response, _, headers): actual = raw_response.analyze_result.document_results[0].fields read_results = raw_response.analyze_result.read_results document_results = raw_response.analyze_result.document_results + page_results = raw_response.analyze_result.page_results - self.assertInvoiceTransformCorrect(invoice, actual, read_results) + self.assertFormFieldsTransformCorrect(invoice.fields, actual, read_results) # check page range self.assertEqual(invoice.page_range.first_page_number, document_results[0].page_range[0]) self.assertEqual(invoice.page_range.last_page_number, document_results[0].page_range[1]) # Check page metadata - self.assertFormPagesTransformCorrect(invoice.pages, read_results) + self.assertFormPagesTransformCorrect(invoice.pages, read_results, page_results) @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer() @@ -240,13 +242,13 @@ def callback(raw_response, _, headers): self.assertEqual(1, returned_model.page_range.first_page_number) self.assertEqual(2, returned_model.page_range.last_page_number) - self.assertEqual(1, len(document_results)) document_result = document_results[0] self.assertEqual(1, document_result.page_range[0]) # checking first page number self.assertEqual(2, document_result.page_range[1]) # checking last page number - self.assertInvoiceTransformCorrect(returned_model, document_result.fields, read_results) + for invoice, document_result in zip(returned_models, document_results): + self.assertFormFieldsTransformCorrect(invoice.fields, document_result.fields, read_results) self.assertFormPagesTransformCorrect(returned_model.pages, read_results, page_results) 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 2536fdf5d8c9..7f8d845592ea 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_invoice_async.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_invoice_async.py @@ -175,15 +175,16 @@ def callback(raw_response, _, headers): actual = raw_response.analyze_result.document_results[0].fields read_results = raw_response.analyze_result.read_results document_results = raw_response.analyze_result.document_results + page_results = raw_response.analyze_result.page_results - self.assertInvoiceTransformCorrect(invoice, actual, read_results) + self.assertFormFieldsTransformCorrect(invoice.fields, actual, read_results) # check page range self.assertEqual(invoice.page_range.first_page_number, document_results[0].page_range[0]) self.assertEqual(invoice.page_range.last_page_number, document_results[0].page_range[1]) # Check page metadata - self.assertFormPagesTransformCorrect(invoice.pages, read_results) + self.assertFormPagesTransformCorrect(invoice.pages, read_results, page_results) @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer() @@ -213,15 +214,16 @@ def callback(raw_response, _, headers): actual = raw_response.analyze_result.document_results[0].fields read_results = raw_response.analyze_result.read_results document_results = raw_response.analyze_result.document_results + page_results = raw_response.analyze_result.page_results - self.assertInvoiceTransformCorrect(invoice, actual, read_results) + self.assertFormFieldsTransformCorrect(invoice.fields, actual, read_results) # check page range self.assertEqual(invoice.page_range.first_page_number, document_results[0].page_range[0]) self.assertEqual(invoice.page_range.last_page_number, document_results[0].page_range[1]) # Check page metadata - self.assertFormPagesTransformCorrect(invoice.pages, read_results) + self.assertFormPagesTransformCorrect(invoice.pages, read_results, page_results) @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer() @@ -257,13 +259,13 @@ def callback(raw_response, _, headers): self.assertEqual(1, returned_model.page_range.first_page_number) self.assertEqual(2, returned_model.page_range.last_page_number) - self.assertEqual(1, len(document_results)) document_result = document_results[0] self.assertEqual(1, document_result.page_range[0]) # checking first page number self.assertEqual(2, document_result.page_range[1]) # checking last page number - self.assertInvoiceTransformCorrect(returned_model, document_result.fields, read_results) + for invoice, document_result in zip(returned_models, document_results): + self.assertFormFieldsTransformCorrect(invoice.fields, document_result.fields, read_results) self.assertFormPagesTransformCorrect(returned_model.pages, read_results, page_results) 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 3dc8a3debc64..e53d7f0382ff 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 @@ -97,15 +97,16 @@ def callback(raw_response, _, headers): actual = raw_response.analyze_result.document_results[0].fields read_results = raw_response.analyze_result.read_results document_results = raw_response.analyze_result.document_results + page_results = raw_response.analyze_result.page_results - self.assertInvoiceTransformCorrect(invoice, actual, read_results) + self.assertFormFieldsTransformCorrect(invoice.fields, actual, read_results) # check page range self.assertEqual(invoice.page_range.first_page_number, document_results[0].page_range[0]) self.assertEqual(invoice.page_range.last_page_number, document_results[0].page_range[1]) # Check page metadata - self.assertFormPagesTransformCorrect(invoice.pages, read_results) + self.assertFormPagesTransformCorrect(invoice.pages, read_results, page_results) @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer() @@ -131,15 +132,16 @@ def callback(raw_response, _, headers): actual = raw_response.analyze_result.document_results[0].fields read_results = raw_response.analyze_result.read_results document_results = raw_response.analyze_result.document_results + page_results = raw_response.analyze_result.page_results - self.assertInvoiceTransformCorrect(invoice, actual, read_results) + self.assertFormFieldsTransformCorrect(invoice.fields, actual, read_results) # check page range self.assertEqual(invoice.page_range.first_page_number, document_results[0].page_range[0]) self.assertEqual(invoice.page_range.last_page_number, document_results[0].page_range[1]) # Check page metadata - self.assertFormPagesTransformCorrect(invoice.pages, read_results) + self.assertFormPagesTransformCorrect(invoice.pages, read_results, page_results) @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer() @@ -171,13 +173,13 @@ def callback(raw_response, _, headers): self.assertEqual(1, returned_model.page_range.first_page_number) self.assertEqual(2, returned_model.page_range.last_page_number) - self.assertEqual(1, len(document_results)) document_result = document_results[0] self.assertEqual(1, document_result.page_range[0]) # checking first page number self.assertEqual(2, document_result.page_range[1]) # checking last page number - self.assertInvoiceTransformCorrect(returned_model, document_result.fields, read_results) + for invoice, document_result in zip(returned_models, document_results): + self.assertFormFieldsTransformCorrect(invoice.fields, document_result.fields, read_results) self.assertFormPagesTransformCorrect(returned_model.pages, read_results, page_results) 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 d1bfdc9937a5..0fb279fc00c7 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 @@ -107,15 +107,16 @@ def callback(raw_response, _, headers): actual = raw_response.analyze_result.document_results[0].fields read_results = raw_response.analyze_result.read_results document_results = raw_response.analyze_result.document_results + page_results = raw_response.analyze_result.page_results - self.assertInvoiceTransformCorrect(invoice, actual, read_results) + self.assertFormFieldsTransformCorrect(invoice.fields, actual, read_results) # check page range self.assertEqual(invoice.page_range.first_page_number, document_results[0].page_range[0]) self.assertEqual(invoice.page_range.last_page_number, document_results[0].page_range[1]) # Check page metadata - self.assertFormPagesTransformCorrect(invoice.pages, read_results) + self.assertFormPagesTransformCorrect(invoice.pages, read_results, page_results) @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer() @@ -142,15 +143,16 @@ def callback(raw_response, _, headers): actual = raw_response.analyze_result.document_results[0].fields read_results = raw_response.analyze_result.read_results document_results = raw_response.analyze_result.document_results + page_results = raw_response.analyze_result.page_results - self.assertInvoiceTransformCorrect(invoice, actual, read_results) + self.assertFormFieldsTransformCorrect(invoice.fields, actual, read_results) # check page range self.assertEqual(invoice.page_range.first_page_number, document_results[0].page_range[0]) self.assertEqual(invoice.page_range.last_page_number, document_results[0].page_range[1]) # Check page metadata - self.assertFormPagesTransformCorrect(invoice.pages, read_results) + self.assertFormPagesTransformCorrect(invoice.pages, read_results, page_results) @GlobalFormRecognizerAccountPreparer() @GlobalClientPreparer() @@ -183,13 +185,13 @@ def callback(raw_response, _, headers): self.assertEqual(1, returned_model.page_range.first_page_number) self.assertEqual(2, returned_model.page_range.last_page_number) - self.assertEqual(1, len(document_results)) document_result = document_results[0] self.assertEqual(1, document_result.page_range[0]) # checking first page number self.assertEqual(2, document_result.page_range[1]) # checking last page number - self.assertInvoiceTransformCorrect(returned_model, document_result.fields, read_results) + for invoice, document_result in zip(returned_models, document_results): + self.assertFormFieldsTransformCorrect(invoice.fields, document_result.fields, read_results) self.assertFormPagesTransformCorrect(returned_model.pages, read_results, page_results) diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_receipt.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_receipt.py index 425a1d36b827..d4c65b37e2b3 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_receipt.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_receipt.py @@ -163,28 +163,12 @@ def callback(raw_response, _, headers): document_results = raw_response.analyze_result.document_results # check dict values - self.assertFormFieldTransformCorrect(receipt.fields.get("MerchantAddress"), actual.get("MerchantAddress"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("MerchantName"), actual.get("MerchantName"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("MerchantPhoneNumber"), actual.get("MerchantPhoneNumber"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("Subtotal"), actual.get("Subtotal"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("Tax"), actual.get("Tax"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("Tip"), actual.get("Tip"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("Total"), actual.get("Total"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("TransactionDate"), actual.get("TransactionDate"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("TransactionTime"), actual.get("TransactionTime"), read_results) + self.assertFormFieldsTransformCorrect(receipt.fields, actual, read_results) # check page range self.assertEqual(receipt.page_range.first_page_number, document_results[0].page_range[0]) self.assertEqual(receipt.page_range.last_page_number, document_results[0].page_range[1]) - # check receipt type - receipt_type = receipt.fields.get("ReceiptType") - self.assertEqual(receipt_type.confidence, actual["ReceiptType"].confidence) - self.assertEqual(receipt_type.value, actual["ReceiptType"].value_string) - - # check receipt items - self.assertReceiptItemsTransformCorrect(receipt.fields["Items"].value, actual["Items"], read_results) - # Check page metadata self.assertFormPagesTransformCorrect(receipt.pages, read_results) @@ -218,28 +202,12 @@ def callback(raw_response, _, headers): page_results = raw_response.analyze_result.page_results # check dict values - self.assertFormFieldTransformCorrect(receipt.fields.get("MerchantAddress"), actual.get("MerchantAddress"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("MerchantName"), actual.get("MerchantName"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("MerchantPhoneNumber"), actual.get("MerchantPhoneNumber"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("Subtotal"), actual.get("Subtotal"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("Tax"), actual.get("Tax"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("Tip"), actual.get("Tip"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("Total"), actual.get("Total"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("TransactionDate"), actual.get("TransactionDate"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("TransactionTime"), actual.get("TransactionTime"), read_results) + self.assertFormFieldsTransformCorrect(receipt.fields, actual, read_results) # check page range self.assertEqual(receipt.page_range.first_page_number, document_results[0].page_range[0]) self.assertEqual(receipt.page_range.last_page_number, document_results[0].page_range[1]) - # check receipt type - receipt_type = receipt.fields.get("ReceiptType") - self.assertEqual(receipt_type.confidence, actual["ReceiptType"].confidence) - self.assertEqual(receipt_type.value, actual["ReceiptType"].value_string) - - # check receipt items - self.assertReceiptItemsTransformCorrect(receipt.fields["Items"].value, actual["Items"], read_results) - # Check form pages self.assertFormPagesTransformCorrect(receipt.pages, read_results) @@ -383,28 +351,12 @@ def callback(raw_response, _, headers): continue # check dict values - self.assertFormFieldTransformCorrect(receipt.fields.get("MerchantAddress"), actual.fields.get("MerchantAddress"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("MerchantName"), actual.fields.get("MerchantName"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("MerchantPhoneNumber"), actual.fields.get("MerchantPhoneNumber"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("Subtotal"), actual.fields.get("Subtotal"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("Tax"), actual.fields.get("Tax"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("Tip"), actual.fields.get("Tip"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("Total"), actual.fields.get("Total"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("TransactionDate"), actual.fields.get("TransactionDate"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("TransactionTime"), actual.fields.get("TransactionTime"), read_results) + self.assertFormFieldsTransformCorrect(receipt.fields, actual.fields, read_results) # check page range self.assertEqual(receipt.page_range.first_page_number, actual.page_range[0]) self.assertEqual(receipt.page_range.last_page_number, actual.page_range[1]) - # check receipt type - receipt_type = receipt.fields.get("ReceiptType") - self.assertEqual(receipt_type.confidence, actual.fields["ReceiptType"].confidence) - self.assertEqual(receipt_type.value, actual.fields["ReceiptType"].value_string) - - # check receipt items - self.assertReceiptItemsTransformCorrect(receipt.fields["Items"].value, actual.fields["Items"], read_results) - # Check form pages self.assertFormPagesTransformCorrect(returned_model, read_results) 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 574dfeea33b3..4665fbf4f3fa 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_receipt_async.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_receipt_async.py @@ -187,28 +187,12 @@ def callback(raw_response, _, headers): document_results = raw_response.analyze_result.document_results # check dict values - self.assertFormFieldTransformCorrect(receipt.fields.get("MerchantAddress"), actual.get("MerchantAddress"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("MerchantName"), actual.get("MerchantName"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("MerchantPhoneNumber"), actual.get("MerchantPhoneNumber"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("Subtotal"), actual.get("Subtotal"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("Tax"), actual.get("Tax"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("Tip"), actual.get("Tip"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("Total"), actual.get("Total"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("TransactionDate"), actual.get("TransactionDate"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("TransactionTime"), actual.get("TransactionTime"), read_results) + self.assertFormFieldsTransformCorrect(receipt.fields, actual, read_results) # check page range self.assertEqual(receipt.page_range.first_page_number, document_results[0].page_range[0]) self.assertEqual(receipt.page_range.last_page_number, document_results[0].page_range[1]) - # check receipt type - receipt_type = receipt.fields.get("ReceiptType") - self.assertEqual(receipt_type.confidence, actual["ReceiptType"].confidence) - self.assertEqual(receipt_type.value, actual["ReceiptType"].value_string) - - # check receipt items - self.assertReceiptItemsTransformCorrect(receipt.fields["Items"].value, actual["Items"], read_results) - # Check page metadata self.assertFormPagesTransformCorrect(receipt.pages, read_results) @@ -243,28 +227,12 @@ def callback(raw_response, _, headers): page_results = raw_response.analyze_result.page_results # check dict values - self.assertFormFieldTransformCorrect(receipt.fields.get("MerchantAddress"), actual.get("MerchantAddress"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("MerchantName"), actual.get("MerchantName"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("MerchantPhoneNumber"), actual.get("MerchantPhoneNumber"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("Subtotal"), actual.get("Subtotal"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("Tax"), actual.get("Tax"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("Tip"), actual.get("Tip"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("Total"), actual.get("Total"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("TransactionDate"), actual.get("TransactionDate"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("TransactionTime"), actual.get("TransactionTime"), read_results) + self.assertFormFieldsTransformCorrect(receipt.fields, actual, read_results) # check page range self.assertEqual(receipt.page_range.first_page_number, document_results[0].page_range[0]) self.assertEqual(receipt.page_range.last_page_number, document_results[0].page_range[1]) - # check receipt type - receipt_type = receipt.fields.get("ReceiptType") - self.assertEqual(receipt_type.confidence, actual["ReceiptType"].confidence) - self.assertEqual(receipt_type.value, actual["ReceiptType"].value_string) - - # check receipt items - self.assertReceiptItemsTransformCorrect(receipt.fields["Items"].value, actual["Items"], read_results) - # Check form pages self.assertFormPagesTransformCorrect(receipt.pages, read_results) @@ -411,28 +379,12 @@ def callback(raw_response, _, headers): continue # check dict values - self.assertFormFieldTransformCorrect(receipt.fields.get("MerchantAddress"), actual.fields.get("MerchantAddress"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("MerchantName"), actual.fields.get("MerchantName"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("MerchantPhoneNumber"), actual.fields.get("MerchantPhoneNumber"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("Subtotal"), actual.fields.get("Subtotal"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("Tax"), actual.fields.get("Tax"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("Tip"), actual.fields.get("Tip"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("Total"), actual.fields.get("Total"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("TransactionDate"), actual.fields.get("TransactionDate"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("TransactionTime"), actual.fields.get("TransactionTime"), read_results) + self.assertFormFieldsTransformCorrect(receipt.fields, actual.fields, read_results) # check page range self.assertEqual(receipt.page_range.first_page_number, actual.page_range[0]) self.assertEqual(receipt.page_range.last_page_number, actual.page_range[1]) - # check receipt type - receipt_type = receipt.fields.get("ReceiptType") - self.assertEqual(receipt_type.confidence, actual.fields["ReceiptType"].confidence) - self.assertEqual(receipt_type.value, actual.fields["ReceiptType"].value_string) - - # check receipt items - self.assertReceiptItemsTransformCorrect(receipt.fields["Items"].value, actual.fields["Items"], read_results) - # Check form pages self.assertFormPagesTransformCorrect(returned_model, read_results) 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 8bc289bda197..bf89e4619537 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 @@ -108,28 +108,12 @@ def callback(raw_response, _, headers): document_results = raw_response.analyze_result.document_results # check dict values - self.assertFormFieldTransformCorrect(receipt.fields.get("MerchantAddress"), actual.get("MerchantAddress"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("MerchantName"), actual.get("MerchantName"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("MerchantPhoneNumber"), actual.get("MerchantPhoneNumber"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("Subtotal"), actual.get("Subtotal"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("Tax"), actual.get("Tax"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("Tip"), actual.get("Tip"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("Total"), actual.get("Total"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("TransactionDate"), actual.get("TransactionDate"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("TransactionTime"), actual.get("TransactionTime"), read_results) + self.assertFormFieldsTransformCorrect(receipt.fields, actual, read_results) # check page range self.assertEqual(receipt.page_range.first_page_number, document_results[0].page_range[0]) self.assertEqual(receipt.page_range.last_page_number, document_results[0].page_range[1]) - # check receipt type - receipt_type = receipt.fields.get("ReceiptType") - self.assertEqual(receipt_type.confidence, actual["ReceiptType"].confidence) - self.assertEqual(receipt_type.value, actual["ReceiptType"].value_string) - - # check receipt items - self.assertReceiptItemsTransformCorrect(receipt.fields["Items"].value, actual["Items"], read_results) - # Check page metadata self.assertFormPagesTransformCorrect(receipt.pages, read_results) @@ -160,28 +144,12 @@ def callback(raw_response, _, headers): document_results = raw_response.analyze_result.document_results # check dict values - self.assertFormFieldTransformCorrect(receipt.fields.get("MerchantAddress"), actual.get("MerchantAddress"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("MerchantName"), actual.get("MerchantName"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("MerchantPhoneNumber"), actual.get("MerchantPhoneNumber"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("Subtotal"), actual.get("Subtotal"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("Tax"), actual.get("Tax"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("Tip"), actual.get("Tip"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("Total"), actual.get("Total"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("TransactionDate"), actual.get("TransactionDate"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("TransactionTime"), actual.get("TransactionTime"), read_results) + self.assertFormFieldsTransformCorrect(receipt.fields, actual, read_results) # check page range self.assertEqual(receipt.page_range.first_page_number, document_results[0].page_range[0]) self.assertEqual(receipt.page_range.last_page_number, document_results[0].page_range[1]) - # check receipt type - receipt_type = receipt.fields.get("ReceiptType") - self.assertEqual(receipt_type.confidence, actual["ReceiptType"].confidence) - self.assertEqual(receipt_type.value, actual["ReceiptType"].value_string) - - # check receipt items - self.assertReceiptItemsTransformCorrect(receipt.fields["Items"].value, actual["Items"], read_results) - # Check page metadata self.assertFormPagesTransformCorrect(receipt.pages, read_results) @@ -318,28 +286,12 @@ def callback(raw_response, _, headers): continue # check dict values - self.assertFormFieldTransformCorrect(receipt.fields.get("MerchantAddress"), actual.fields.get("MerchantAddress"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("MerchantName"), actual.fields.get("MerchantName"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("MerchantPhoneNumber"), actual.fields.get("MerchantPhoneNumber"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("Subtotal"), actual.fields.get("Subtotal"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("Tax"), actual.fields.get("Tax"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("Tip"), actual.fields.get("Tip"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("Total"), actual.fields.get("Total"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("TransactionDate"), actual.fields.get("TransactionDate"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("TransactionTime"), actual.fields.get("TransactionTime"), read_results) + self.assertFormFieldsTransformCorrect(receipt.fields, actual.fields, read_results) # check page range self.assertEqual(receipt.page_range.first_page_number, actual.page_range[0]) self.assertEqual(receipt.page_range.last_page_number, actual.page_range[1]) - # check receipt type - receipt_type = receipt.fields.get("ReceiptType") - self.assertEqual(receipt_type.confidence, actual.fields["ReceiptType"].confidence) - self.assertEqual(receipt_type.value, actual.fields["ReceiptType"].value_string) - - # check receipt items - self.assertReceiptItemsTransformCorrect(receipt.fields["Items"].value, actual.fields["Items"], read_results) - # Check form pages self.assertFormPagesTransformCorrect(returned_model, read_results) 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 5e209cd78ba4..3b1600b41e4d 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 @@ -135,28 +135,12 @@ def callback(raw_response, _, headers): document_results = raw_response.analyze_result.document_results # check dict values - self.assertFormFieldTransformCorrect(receipt.fields.get("MerchantAddress"), actual.get("MerchantAddress"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("MerchantName"), actual.get("MerchantName"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("MerchantPhoneNumber"), actual.get("MerchantPhoneNumber"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("Subtotal"), actual.get("Subtotal"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("Tax"), actual.get("Tax"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("Tip"), actual.get("Tip"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("Total"), actual.get("Total"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("TransactionDate"), actual.get("TransactionDate"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("TransactionTime"), actual.get("TransactionTime"), read_results) + self.assertFormFieldsTransformCorrect(receipt.fields, actual, read_results) # check page range self.assertEqual(receipt.page_range.first_page_number, document_results[0].page_range[0]) self.assertEqual(receipt.page_range.last_page_number, document_results[0].page_range[1]) - # check receipt type - receipt_type = receipt.fields.get("ReceiptType") - self.assertEqual(receipt_type.confidence, actual["ReceiptType"].confidence) - self.assertEqual(receipt_type.value, actual["ReceiptType"].value_string) - - # check receipt items - self.assertReceiptItemsTransformCorrect(receipt.fields["Items"].value, actual["Items"], read_results) - # Check page metadata self.assertFormPagesTransformCorrect(receipt.pages, read_results) @@ -187,28 +171,12 @@ def callback(raw_response, _, headers): document_results = raw_response.analyze_result.document_results # check dict values - self.assertFormFieldTransformCorrect(receipt.fields.get("MerchantAddress"), actual.get("MerchantAddress"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("MerchantName"), actual.get("MerchantName"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("MerchantPhoneNumber"), actual.get("MerchantPhoneNumber"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("Subtotal"), actual.get("Subtotal"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("Tax"), actual.get("Tax"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("Tip"), actual.get("Tip"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("Total"), actual.get("Total"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("TransactionDate"), actual.get("TransactionDate"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("TransactionTime"), actual.get("TransactionTime"), read_results) + self.assertFormFieldsTransformCorrect(receipt.fields, actual, read_results) # check page range self.assertEqual(receipt.page_range.first_page_number, document_results[0].page_range[0]) self.assertEqual(receipt.page_range.last_page_number, document_results[0].page_range[1]) - # check receipt type - receipt_type = receipt.fields.get("ReceiptType") - self.assertEqual(receipt_type.confidence, actual["ReceiptType"].confidence) - self.assertEqual(receipt_type.value, actual["ReceiptType"].value_string) - - # check receipt items - self.assertReceiptItemsTransformCorrect(receipt.fields["Items"].value, actual["Items"], read_results) - # Check page metadata self.assertFormPagesTransformCorrect(receipt.pages, read_results) @@ -352,28 +320,12 @@ def callback(raw_response, _, headers): continue # check dict values - self.assertFormFieldTransformCorrect(receipt.fields.get("MerchantAddress"), actual.fields.get("MerchantAddress"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("MerchantName"), actual.fields.get("MerchantName"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("MerchantPhoneNumber"), actual.fields.get("MerchantPhoneNumber"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("Subtotal"), actual.fields.get("Subtotal"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("Tax"), actual.fields.get("Tax"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("Tip"), actual.fields.get("Tip"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("Total"), actual.fields.get("Total"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("TransactionDate"), actual.fields.get("TransactionDate"), read_results) - self.assertFormFieldTransformCorrect(receipt.fields.get("TransactionTime"), actual.fields.get("TransactionTime"), read_results) + self.assertFormFieldsTransformCorrect(receipt.fields, actual.fields, read_results) # check page range self.assertEqual(receipt.page_range.first_page_number, actual.page_range[0]) self.assertEqual(receipt.page_range.last_page_number, actual.page_range[1]) - # check receipt type - receipt_type = receipt.fields.get("ReceiptType") - self.assertEqual(receipt_type.confidence, actual.fields["ReceiptType"].confidence) - self.assertEqual(receipt_type.value, actual.fields["ReceiptType"].value_string) - - # check receipt items - self.assertReceiptItemsTransformCorrect(receipt.fields["Items"].value, actual.fields["Items"], read_results) - # Check form pages self.assertFormPagesTransformCorrect(returned_model, read_results) diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/testcase.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/testcase.py index 431171134671..64884a43dbf1 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/testcase.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/testcase.py @@ -262,36 +262,50 @@ def assertFieldElementsTransFormCorrect(self, field_elements, generated_elements elif element_type == "selectionMark": self.assertFormSelectionMarkTransformCorrect(element, expected) - def assertLabeledFormFieldDictTransformCorrect(self, form_fields, generated_fields, read_results=None): - if generated_fields is None: + def assertFormFieldValueTransformCorrect(self, form_field, expected, read_results=None): + if expected is None: return - - for label, expected in generated_fields.items(): - self.assertEqual(label, form_fields[label].name) - self.assertEqual(adjust_confidence(expected.confidence), form_fields[label].confidence) - self.assertBoundingBoxTransformCorrect(form_fields[label].value_data.bounding_box, expected.bounding_box) - self.assertEqual(expected.text, form_fields[label].value_data.text) - field_type = expected.type - self.assertEqual(adjust_value_type(field_type), form_fields[label].value_type) - if field_type == "string": - self.assertEqual(form_fields[label].value, expected.value_string) - if field_type == "number": - self.assertEqual(form_fields[label].value, expected.value_number) - if field_type == "integer": - self.assertEqual(form_fields[label].value, expected.value_integer) - if field_type == "date": - self.assertEqual(form_fields[label].value, expected.value_date) - if field_type == "phoneNumber": - self.assertEqual(form_fields[label].value, expected.value_phone_number) - if field_type == "time": - self.assertEqual(form_fields[label].value, expected.value_time) + field_type = expected.type + if field_type == "string": + self.assertEqual(form_field.value, expected.value_string) + if field_type == "number": + self.assertEqual(form_field.value, expected.value_number) + if field_type == "integer": + self.assertEqual(form_field.value, expected.value_integer) + if field_type == "date": + self.assertEqual(form_field.value, expected.value_date) + if field_type == "phoneNumber": + self.assertEqual(form_field.value, expected.value_phone_number) + if field_type == "time": + self.assertEqual(form_field.value, expected.value_time) + if field_type == "array": + for i in range(len(expected.value_array)): + self.assertFormFieldValueTransformCorrect(form_field.value[i], expected.value_array[i], read_results) + if field_type == "object": + self.assertFormFieldsTransformCorrect(form_field.value, expected.value_object, read_results) + + if field_type not in ["array", "object"] and form_field.value_data: + self.assertBoundingBoxTransformCorrect(form_field.value_data.bounding_box, expected.bounding_box) + self.assertEqual(expected.text, form_field.value_data.text) + self.assertEqual(expected.page, form_field.value_data.page_number) if read_results: self.assertFieldElementsTransFormCorrect( - form_fields[label].value_data.field_elements, + form_field.value_data.field_elements, expected.elements, read_results ) + def assertFormFieldsTransformCorrect(self, form_fields, generated_fields, read_results=None): + if generated_fields is None: + return + + for label, expected in generated_fields.items(): + field_type = expected.type + self.assertEqual(adjust_value_type(field_type), form_fields[label].value_type) + self.assertEqual(label, form_fields[label].name) + self.assertEqual(adjust_confidence(expected.confidence), form_fields[label].confidence) + self.assertFormFieldValueTransformCorrect(form_fields[label], expected, read_results) + def assertUnlabeledFormFieldDictTransformCorrect(self, form_fields, generated_fields, read_results=None): if generated_fields is None: return @@ -314,80 +328,6 @@ def assertUnlabeledFormFieldDictTransformCorrect(self, form_fields, generated_fi read_results ) - def _assertFormFieldTransformCorrectHelper(self, receipt_field, generated_field, read_results=None): - field_type = generated_field.type - self.assertEqual(adjust_value_type(field_type), receipt_field.value_type) - if field_type == "string": - self.assertEqual(receipt_field.value, generated_field.value_string) - elif field_type == "number": - self.assertEqual(receipt_field.value, generated_field.value_number) - elif field_type == "integer": - self.assertEqual(receipt_field.value, generated_field.value_integer) - elif field_type == "date": - self.assertEqual(receipt_field.value, generated_field.value_date) - elif field_type == "phoneNumber": - self.assertEqual(receipt_field.value, generated_field.value_phone_number) - elif field_type == "time": - self.assertEqual(receipt_field.value, generated_field.value_time) - elif field_type == "object": - self.assertLabeledFormFieldDictTransformCorrect(receipt_field.value, generated_field.value_object) - else: - raise ValueError('field type {} not valid'.format(field_type)) - - - self.assertBoundingBoxTransformCorrect(receipt_field.value_data.bounding_box, generated_field.bounding_box) - self.assertEqual(receipt_field.value_data.text, generated_field.text) - self.assertEqual(receipt_field.confidence, adjust_confidence(generated_field.confidence)) - if read_results: - self.assertFieldElementsTransFormCorrect( - receipt_field.value_data.field_elements, - generated_field.elements, - read_results - ) - - def assertFormFieldTransformCorrect(self, receipt_field, generated_field, read_results=None): - if generated_field is None: - return - field_type = generated_field.type - if field_type == "array": - for i in range(len(generated_field.value_array)): - self._assertFormFieldTransformCorrectHelper(receipt_field.value[i], generated_field.value_array[i], read_results) - else: - self._assertFormFieldTransformCorrectHelper(receipt_field, generated_field, read_results) - - - def assertReceiptItemsTransformCorrect(self, items, generated_items, read_results=None): - expected_items = generated_items.value_array - - for r, expected in zip(items, expected_items): - self.assertFormFieldTransformCorrect(r.value.get("Name"), expected.value_object.get("Name"), read_results) - self.assertFormFieldTransformCorrect(r.value.get("Quantity"), expected.value_object.get("Quantity"), read_results) - self.assertFormFieldTransformCorrect(r.value.get("TotalPrice"), expected.value_object.get("TotalPrice"), read_results) - self.assertFormFieldTransformCorrect(r.value.get("Price"), expected.value_object.get("Price"), read_results) - - def assertBusinessCardTransformCorrect(self, business_card, expected, read_results=None): - self.assertFormFieldTransformCorrect(business_card.fields.get("ContactNames"), expected.get("ContactNames"), read_results) - self.assertFormFieldTransformCorrect(business_card.fields.get("JobTitles"), expected.get("JobTitles"), read_results) - self.assertFormFieldTransformCorrect(business_card.fields.get("Departments"), expected.get("Departments"), read_results) - self.assertFormFieldTransformCorrect(business_card.fields.get("Emails"), expected.get("Emails"), read_results) - self.assertFormFieldTransformCorrect(business_card.fields.get("Websites"), expected.get("Websites"), read_results) - self.assertFormFieldTransformCorrect(business_card.fields.get("MobilePhones"), expected.get("MobilePhones"), read_results) - self.assertFormFieldTransformCorrect(business_card.fields.get("OtherPhones"), expected.get("OtherPhones"), read_results) - self.assertFormFieldTransformCorrect(business_card.fields.get("Faxes"), expected.get("Faxes"), read_results) - self.assertFormFieldTransformCorrect(business_card.fields.get("Addresses"), expected.get("Addresses"), read_results) - self.assertFormFieldTransformCorrect(business_card.fields.get("CompanyNames"), expected.get("CompanyNames"), read_results) - - def assertInvoiceTransformCorrect(self, invoice, expected, read_results=None): - self.assertFormFieldTransformCorrect(invoice.fields.get("VendorName"), expected.get("VendorName"), read_results) - self.assertFormFieldTransformCorrect(invoice.fields.get("VendorAddress"), expected.get("VendorAddress"), read_results) - self.assertFormFieldTransformCorrect(invoice.fields.get("CustomerAddressRecipient"), expected.get("CustomerAddressRecipient"), read_results) - self.assertFormFieldTransformCorrect(invoice.fields.get("CustomerAddress"), expected.get("CustomerAddress"), read_results) - self.assertFormFieldTransformCorrect(invoice.fields.get("CustomerName"), expected.get("CustomerName"), read_results) - self.assertFormFieldTransformCorrect(invoice.fields.get("InvoiceId"), expected.get("InvoiceId"), read_results) - self.assertFormFieldTransformCorrect(invoice.fields.get("InvoiceDate"), expected.get("InvoiceDate"), read_results) - self.assertFormFieldTransformCorrect(invoice.fields.get("InvoiceTotal"), expected.get("InvoiceTotal"), read_results) - self.assertFormFieldTransformCorrect(invoice.fields.get("DueDate"), expected.get("DueDate"), read_results) - def assertTablesTransformCorrect(self, layout, expected_layout, read_results=None, **kwargs): for table, expected_table in zip(layout, expected_layout): self.assertEqual(table.row_count, expected_table.rows)