Skip to content

Commit 349b266

Browse files
committed
SDK-1559: Add missing filter methods for Doc scan
1 parent f3e286e commit 349b266

6 files changed

Lines changed: 70 additions & 4 deletions

File tree

yoti_python_sdk/doc_scan/session/retrieve/id_document_resource_response.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66
)
77
from yoti_python_sdk.doc_scan.session.retrieve.page_response import PageResponse
88
from yoti_python_sdk.doc_scan.session.retrieve.resource_response import ResourceResponse
9+
from yoti_python_sdk.doc_scan.session.retrieve.task_response import (
10+
TextExtractionTaskResponse,
11+
)
912

1013

1114
class IdDocumentResourceResponse(ResourceResponse):
@@ -71,3 +74,16 @@ def document_fields(self):
7174
:rtype: DocumentFieldsResponse
7275
"""
7376
return self.__document_fields
77+
78+
@property
79+
def text_extraction_tasks(self):
80+
"""
81+
Returns a list of text extraction tasks associated
82+
with the id document
83+
84+
:return: list of text extraction tasks
85+
:rtype: list[TextExtractionTaskResponse]
86+
"""
87+
return [
88+
task for task in self.tasks if isinstance(task, TextExtractionTaskResponse)
89+
]

yoti_python_sdk/doc_scan/session/retrieve/resource_container.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@
66
)
77
from yoti_python_sdk.doc_scan.session.retrieve.liveness_resource_response import (
88
LivenessResourceResponse,
9-
)
10-
from yoti_python_sdk.doc_scan.session.retrieve.liveness_resource_response import (
119
ZoomLivenessResourceResponse,
1210
)
1311

@@ -75,3 +73,17 @@ def liveness_capture(self):
7573
:rtype: list[LivenessResourceResponse]
7674
"""
7775
return self.__liveness_capture
76+
77+
@property
78+
def zoom_liveness_resources(self):
79+
"""
80+
Returns a filtered list of zoom liveness capture resources
81+
82+
:return: list of zoom liveness captures
83+
:rtype: list[ZoomLivenessResourceResponse]
84+
"""
85+
return [
86+
liveness
87+
for liveness in self.__liveness_capture
88+
if isinstance(liveness, ZoomLivenessResourceResponse)
89+
]

yoti_python_sdk/doc_scan/session/retrieve/task_response.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,4 +156,10 @@ class TextExtractionTaskResponse(TaskResponse):
156156
Represents a Text Extraction task response
157157
"""
158158

159-
pass
159+
@property
160+
def generated_text_data_checks(self):
161+
return [
162+
check
163+
for check in self.generated_checks
164+
if isinstance(check, GeneratedTextDataCheckResponse)
165+
]

yoti_python_sdk/tests/doc_scan/session/retrieve/test_id_document_resource_response.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,14 @@ def test_should_parse_tasks_with_type(self):
6868
assert isinstance(result.tasks[0], TextExtractionTaskResponse)
6969
assert isinstance(result.tasks[1], TaskResponse)
7070

71+
def test_should_filter_text_extraction_tasks(self):
72+
data = {"tasks": self.SOME_TASKS}
73+
74+
result = IdDocumentResourceResponse(data)
75+
76+
assert len(result.tasks) == 2
77+
assert len(result.text_extraction_tasks) == 1
78+
7179

7280
if __name__ == "__main__":
7381
unittest.main()

yoti_python_sdk/tests/doc_scan/session/retrieve/test_resource_container.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,19 @@ def test_should_parse_with_none(self):
3434
assert len(result.id_documents) == 0
3535
assert len(result.liveness_capture) == 0
3636

37+
def test_should_filter_zoom_liveness_resources(self):
38+
data = {
39+
"liveness_capture": [
40+
{"liveness_type": "ZOOM"},
41+
{"liveness_type": "someUnknown"},
42+
]
43+
}
44+
45+
result = ResourceContainer(data)
46+
47+
assert len(result.liveness_capture) == 2
48+
assert len(result.zoom_liveness_resources) == 1
49+
3750

3851
if __name__ == "__main__":
3952
unittest.main()

yoti_python_sdk/tests/doc_scan/session/retrieve/test_task_response.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,10 @@
99
from yoti_python_sdk.doc_scan.session.retrieve.generated_check_response import (
1010
GeneratedTextDataCheckResponse,
1111
)
12-
from yoti_python_sdk.doc_scan.session.retrieve.task_response import TaskResponse
12+
from yoti_python_sdk.doc_scan.session.retrieve.task_response import (
13+
TaskResponse,
14+
TextExtractionTaskResponse,
15+
)
1316

1417

1518
class TaskResponseTest(unittest.TestCase):
@@ -74,6 +77,14 @@ def test_should_parse_with_none(self):
7477
assert len(result.generated_checks) == 0
7578
assert len(result.generated_media) == 0
7679

80+
def test_should_filter_generated_text_data_checks(self):
81+
data = {"generated_checks": self.SOME_GENERATED_CHECKS}
82+
83+
result = TextExtractionTaskResponse(data)
84+
85+
assert len(result.generated_checks) == 2
86+
assert len(result.generated_text_data_checks) == 1
87+
7788

7889
if __name__ == "__main__":
7990
unittest.main()

0 commit comments

Comments
 (0)