diff --git a/examples/yoti_example_django/requirements.txt b/examples/yoti_example_django/requirements.txt index d966b31c..dd988ae1 100644 --- a/examples/yoti_example_django/requirements.txt +++ b/examples/yoti_example_django/requirements.txt @@ -66,6 +66,3 @@ wrapt==1.12.1 # via deprecated yoti==2.14.0 # via -r requirements.in - -# The following packages are considered to be unsafe in a requirements file: -# setuptools diff --git a/yoti_python_sdk/doc_scan/session/retrieve/page_response.py b/yoti_python_sdk/doc_scan/session/retrieve/page_response.py index 25661660..9d296244 100644 --- a/yoti_python_sdk/doc_scan/session/retrieve/page_response.py +++ b/yoti_python_sdk/doc_scan/session/retrieve/page_response.py @@ -23,6 +23,7 @@ def __init__(self, data=None): ) self.__media = MediaResponse(data["media"]) if "media" in data.keys() else None self.__frames = [FrameResponse(frame) for frame in data.get("frames", [])] + self.__extraction_image_ids = list(data.get("extraction_image_ids") or []) @property def capture_method(self): @@ -53,3 +54,13 @@ def frames(self): :rtype: list[FrameResponse] """ return self.__frames + + @property + def extraction_image_ids(self): + """ + Returns the list of media IDs used for automated extraction + + :return: the extraction image IDs + :rtype: list[str] + """ + return self.__extraction_image_ids diff --git a/yoti_python_sdk/tests/doc_scan/session/retrieve/test_page_response.py b/yoti_python_sdk/tests/doc_scan/session/retrieve/test_page_response.py index 22e66d18..6b9e95d8 100644 --- a/yoti_python_sdk/tests/doc_scan/session/retrieve/test_page_response.py +++ b/yoti_python_sdk/tests/doc_scan/session/retrieve/test_page_response.py @@ -8,12 +8,18 @@ class PageResponseTest(unittest.TestCase): SOME_CAPTURE_METHOD = "someCaptureMethod" SOME_FRAMES = [{"first": "frame"}, {"second": "frame"}] + SOME_EXTRACTION_IMAGE_ID = "066a9372-1ab9-49f0-b390-1b58e08f17f6" + SOME_OTHER_EXTRACTION_IMAGE_ID = "1a2b3c4d-5e6f-7890-abcd-ef1234567890" def test_should_parse_correctly(self): data = { "capture_method": self.SOME_CAPTURE_METHOD, "media": {}, "frames": self.SOME_FRAMES, + "extraction_image_ids": [ + self.SOME_EXTRACTION_IMAGE_ID, + self.SOME_OTHER_EXTRACTION_IMAGE_ID, + ], } result = PageResponse(data) @@ -23,6 +29,10 @@ def test_should_parse_correctly(self): assert len(result.frames) == 2 assert isinstance(result.frames[0], FrameResponse) assert isinstance(result.frames[1], FrameResponse) + assert result.extraction_image_ids == [ + self.SOME_EXTRACTION_IMAGE_ID, + self.SOME_OTHER_EXTRACTION_IMAGE_ID, + ] def test_should_parse_with_none(self): result = PageResponse(None) @@ -30,6 +40,35 @@ def test_should_parse_with_none(self): assert result.capture_method is None assert result.media is None assert len(result.frames) == 0 + assert result.extraction_image_ids == [] + + def test_should_parse_extraction_image_ids_with_single_uuid(self): + data = {"extraction_image_ids": [self.SOME_EXTRACTION_IMAGE_ID]} + + result = PageResponse(data) + + assert result.extraction_image_ids == [self.SOME_EXTRACTION_IMAGE_ID] + + def test_should_parse_extraction_image_ids_with_empty_array(self): + data = {"extraction_image_ids": []} + + result = PageResponse(data) + + assert result.extraction_image_ids == [] + + def test_should_parse_extraction_image_ids_with_null(self): + data = {"extraction_image_ids": None} + + result = PageResponse(data) + + assert result.extraction_image_ids == [] + + def test_should_parse_extraction_image_ids_when_field_absent(self): + data = {"capture_method": self.SOME_CAPTURE_METHOD} + + result = PageResponse(data) + + assert result.extraction_image_ids == [] if __name__ == "__main__": diff --git a/yoti_python_sdk/tests/fixtures/response_get_docs_scan_session.txt b/yoti_python_sdk/tests/fixtures/response_get_docs_scan_session.txt index 2bb3194e..2087ed58 100644 --- a/yoti_python_sdk/tests/fixtures/response_get_docs_scan_session.txt +++ b/yoti_python_sdk/tests/fixtures/response_get_docs_scan_session.txt @@ -28,7 +28,8 @@ "type": "IMAGE", "created": "2020-01-30T15:00:00Z", "last_updated": "2020-01-30T15:00:00Z" - } + }, + "extraction_image_ids": [""] }], "document_fields": { "media": {