1
1
# -*- coding: utf-8 -*-
2
+ import logging
3
+ import time
4
+ from datetime import datetime
5
+
6
+ from yoti_python_sdk .protobuf .attribute_public_api import Attribute_pb2
7
+
2
8
import yoti_python_sdk
3
9
from yoti_python_sdk import config
10
+ from yoti_python_sdk .anchor import Anchor
4
11
from yoti_python_sdk .tests import anchor_parser
5
- from datetime import datetime
6
- import time
7
12
8
13
9
- def utc_offset ():
14
+ def get_utc_offset ():
10
15
utc_offset = int (time .timezone / 60 / 60 )
11
16
12
17
if time .daylight :
@@ -16,40 +21,62 @@ def utc_offset():
16
21
17
22
18
23
def test_parse_anchors_driving_license ():
19
- parsed_anchor = anchor_parser .get_driving_license_anchor ()
24
+ parsed_anchor = anchor_parser .get_parsed_driving_license_anchor ()
20
25
21
26
assert parsed_anchor .anchor_type == config .ANCHOR_SOURCE
22
27
assert parsed_anchor .sub_type == ""
23
28
assert parsed_anchor .value == "DRIVING_LICENCE"
24
29
assert parsed_anchor .origin_server_certs .serial_number == int ("46131813624213904216516051554755262812" )
25
- assert parsed_anchor .signed_timestamp == datetime (2018 , 4 , 11 , 12 - utc_offset (), 13 , 3 , 923537 )
30
+ assert parsed_anchor .signed_timestamp == datetime (2018 , 4 , 11 , 12 - get_utc_offset (), 13 , 3 , 923537 )
26
31
27
32
28
33
def test_parse_anchors_passport ():
29
- parsed_anchor = anchor_parser .get_passport_anchor ()
34
+ parsed_anchor = anchor_parser .get_parsed_passport_anchor ()
30
35
31
36
assert parsed_anchor .anchor_type == config .ANCHOR_SOURCE
32
37
assert parsed_anchor .sub_type == "OCR"
33
38
assert parsed_anchor .value == "PASSPORT"
34
39
assert parsed_anchor .origin_server_certs .serial_number == int ("277870515583559162487099305254898397834" )
35
- assert parsed_anchor .signed_timestamp == datetime (2018 , 4 , 12 , 13 - utc_offset (), 14 , 32 , 835537 )
40
+ assert parsed_anchor .signed_timestamp == datetime (2018 , 4 , 12 , 13 - get_utc_offset (), 14 , 32 , 835537 )
36
41
37
42
38
43
def test_parse_yoti_admin ():
39
- parsed_anchor = anchor_parser .get_yoti_admin_anchor ()
44
+ parsed_anchor = anchor_parser .get_parsed_yoti_admin_anchor ()
40
45
41
46
assert parsed_anchor .anchor_type == config .ANCHOR_VERIFIER
42
47
assert parsed_anchor .sub_type == ""
43
48
assert parsed_anchor .value == "YOTI_ADMIN"
44
49
assert parsed_anchor .origin_server_certs .serial_number == int ("256616937783084706710155170893983549581" )
45
- assert parsed_anchor .signed_timestamp == datetime (2018 , 4 , 11 , 12 - utc_offset (), 13 , 4 , 95238 )
50
+ assert parsed_anchor .signed_timestamp == datetime (2018 , 4 , 11 , 12 - get_utc_offset (), 13 , 4 , 95238 )
46
51
47
52
48
53
def test_anchor_returns_correct_default_values ():
49
- anchor = yoti_python_sdk .anchor .Anchor ()
54
+ default_anchor = yoti_python_sdk .anchor .Anchor ()
55
+
56
+ assert default_anchor .anchor_type == "Unknown"
57
+ assert default_anchor .signed_timestamp is None
58
+ assert default_anchor .sub_type == ""
59
+ assert default_anchor .value == ""
60
+ assert default_anchor .origin_server_certs is None
61
+
50
62
51
- assert anchor .anchor_type == "Unknown"
52
- assert anchor .signed_timestamp is None
53
- assert anchor .sub_type == ""
54
- assert anchor .value == ""
55
- assert anchor .origin_server_certs is None
63
+ def test_error_parsing_anchor_certificate_carries_on_parsing ():
64
+ driving_license_anchor = anchor_parser .get_anchor_from_base64_text (anchor_parser .ANCHOR_DRIVING_LICENSE )[0 ]
65
+ anchors = list ()
66
+ anchors .append (Attribute_pb2 .Anchor ())
67
+ anchors .append (driving_license_anchor )
68
+
69
+ # 1st anchor will log a warning when being parsed
70
+ logger = logging .getLogger ()
71
+ logger .propagate = False
72
+ parsed_anchors = Anchor .parse_anchors (anchors )
73
+ logger .propagate = True
74
+
75
+ assert len (parsed_anchors ) == 1
76
+
77
+ parsed_anchor = parsed_anchors [0 ]
78
+ assert parsed_anchor .anchor_type == config .ANCHOR_SOURCE
79
+ assert parsed_anchor .sub_type == ""
80
+ assert parsed_anchor .value == "DRIVING_LICENCE"
81
+ assert parsed_anchor .origin_server_certs .serial_number == int ("46131813624213904216516051554755262812" )
82
+ assert parsed_anchor .signed_timestamp == datetime (2018 , 4 , 11 , 12 - get_utc_offset (), 13 , 3 , 923537 )
0 commit comments