4
4
from yoti_python_sdk .tests import file_helper
5
5
from yoti_python_sdk .issuance_details import IssuanceDetails
6
6
from yoti_python_sdk .protobuf .share_public_api import ThirdPartyAttribute_pb2
7
+ from yoti_python_sdk .protobuf .share_public_api import IssuingAttributes_pb2
7
8
from datetime import datetime
9
+ import pytest
8
10
9
11
FIXTURES_DIR = os .path .join (os .path .dirname (os .path .abspath (__file__ )), "fixtures" )
10
12
THIRD_PARTY_ATTRIBUTE = os .path .join (FIXTURES_DIR , "testthirdpartyattribute.txt" )
11
13
12
14
15
+ def create_issuance_test_proto (issuance_token , expiry_date , * definitions ):
16
+ issuing_attributes = IssuingAttributes_pb2 .IssuingAttributes ()
17
+ issuing_attributes .expiry_date = expiry_date
18
+ for s in definitions :
19
+ name = IssuingAttributes_pb2 .Definition ()
20
+ name .name = s
21
+ issuing_attributes .definitions .extend ([name ])
22
+
23
+ attribute = ThirdPartyAttribute_pb2 .ThirdPartyAttribute ()
24
+ attribute .issuance_token = bytes (issuance_token , "utf-8" )
25
+ attribute .issuing_attributes .MergeFrom (issuing_attributes )
26
+ return attribute
27
+
28
+
13
29
def test_should_parse_third_party_attribute_correctly ():
14
30
thirdparty_attribute_bytes = file_helper .get_file_bytes (THIRD_PARTY_ATTRIBUTE )
15
31
@@ -21,3 +37,14 @@ def test_should_parse_third_party_attribute_correctly():
21
37
assert issuance_details .attributes [0 ].name == "com.thirdparty.id"
22
38
assert issuance_details .token == "someIssuanceToken"
23
39
assert issuance_details .expiry_date == datetime (2019 , 10 , 15 , 22 , 4 , 5 , 123000 )
40
+
41
+
42
+ @pytest .mark .parametrize (
43
+ "expiry_date" , ["2006-13-02T15:04:05.000Z" , "" , "2006-13-02T15:04:05" ]
44
+ )
45
+ def test_should_return_none_if_error_in_parsing_date (expiry_date ):
46
+ proto = create_issuance_test_proto ("someToken" , expiry_date )
47
+
48
+ issuance_details = IssuanceDetails (proto )
49
+
50
+ assert issuance_details .expiry_date is None
0 commit comments