3
3
4
4
import pytest
5
5
from hls_lambda_layer .batch_test_events import (
6
+ batch_expected_failed_event ,
6
7
batch_failed_event ,
7
8
batch_failed_event_string_cause ,
8
9
batch_succeeded_event ,
@@ -20,15 +21,45 @@ def test_handler_keyError(client):
20
21
}
21
22
cause = json .loads (event ["jobinfo" ]["Cause" ])
22
23
jobinfo = {"name" : "jobinfo" , "value" : {"stringValue" : json .dumps (cause )}}
23
- granule = {"name" : "granule" , "value" : {"stringValue" : event ["granule" ]}}
24
+ selector = {"name" : "selector" , "value" : {"stringValue" : event ["granule" ]}}
25
+ succeeded = {"name" : "succeeded" , "value" : {"booleanValue" : False }}
26
+ expected_error = {"name" : "expected_error" , "value" : {"booleanValue" : False }}
27
+ unexpected_error = {"name" : "unexpected_error" , "value" : {"booleanValue" : True }}
24
28
client .execute_statement .return_value = {}
25
29
output = handler (event , {})
26
30
args , kwargs = client .execute_statement .call_args
27
31
assert jobinfo in kwargs ["parameters" ]
28
- assert granule in kwargs ["parameters" ]
32
+ assert selector in kwargs ["parameters" ]
33
+ assert succeeded in kwargs ["parameters" ]
34
+ assert expected_error in kwargs ["parameters" ]
35
+ assert unexpected_error in kwargs ["parameters" ]
29
36
assert output == 1
30
37
31
38
39
+ @patch ("lambda_functions.sentinel_ac_logger.rds_client" )
40
+ def test_handler_expected_keyError (client ):
41
+ """Test handler."""
42
+ event = {
43
+ "granule" : "S2A_MSIL1C_20200708T232851_N0209_R044_T58LEP_20200709T005119" ,
44
+ "jobinfo" : batch_expected_failed_event ,
45
+ }
46
+ cause = json .loads (event ["jobinfo" ]["Cause" ])
47
+ jobinfo = {"name" : "jobinfo" , "value" : {"stringValue" : json .dumps (cause )}}
48
+ selector = {"name" : "selector" , "value" : {"stringValue" : event ["granule" ]}}
49
+ succeeded = {"name" : "succeeded" , "value" : {"booleanValue" : False }}
50
+ expected_error = {"name" : "expected_error" , "value" : {"booleanValue" : True }}
51
+ unexpected_error = {"name" : "unexpected_error" , "value" : {"booleanValue" : False }}
52
+ client .execute_statement .return_value = {}
53
+ output = handler (event , {})
54
+ args , kwargs = client .execute_statement .call_args
55
+ assert jobinfo in kwargs ["parameters" ]
56
+ assert selector in kwargs ["parameters" ]
57
+ assert succeeded in kwargs ["parameters" ]
58
+ assert expected_error in kwargs ["parameters" ]
59
+ assert unexpected_error in kwargs ["parameters" ]
60
+ assert output == 137
61
+
62
+
32
63
@patch ("lambda_functions.sentinel_ac_logger.rds_client" )
33
64
def test_handler (client ):
34
65
"""Test handler."""
@@ -43,8 +74,44 @@ def test_handler(client):
43
74
"name" : "jobinfo" ,
44
75
"value" : {"stringValue" : json .dumps (event ["jobinfo" ])},
45
76
}
77
+ selector = {"name" : "selector" , "value" : {"stringValue" : event ["granule" ]}}
78
+ succeeded = {"name" : "succeeded" , "value" : {"booleanValue" : True }}
79
+ expected_error = {"name" : "expected_error" , "value" : {"booleanValue" : False }}
80
+ unexpected_error = {"name" : "unexpected_error" , "value" : {"booleanValue" : False }}
81
+ assert jobinfo in kwargs ["parameters" ]
82
+ assert succeeded in kwargs ["parameters" ]
83
+ assert expected_error in kwargs ["parameters" ]
84
+ assert unexpected_error in kwargs ["parameters" ]
85
+ assert selector in kwargs ["parameters" ]
86
+ assert output == 0
87
+ assert "WHERE granule" in kwargs ["sql" ]
88
+
89
+
90
+ @patch ("lambda_functions.sentinel_ac_logger.rds_client" )
91
+ def test_handler_update_by_id (client ):
92
+ """Test handler."""
93
+ event = {
94
+ "id" : 1 ,
95
+ "jobinfo" : batch_succeeded_event ,
96
+ }
97
+ client .execute_statement .return_value = {}
98
+ output = handler (event , {})
99
+ args , kwargs = client .execute_statement .call_args
100
+ jobinfo = {
101
+ "name" : "jobinfo" ,
102
+ "value" : {"stringValue" : json .dumps (event ["jobinfo" ])},
103
+ }
104
+ selector = {"name" : "selector" , "value" : {"longValue" : event ["id" ]}}
105
+ succeeded = {"name" : "succeeded" , "value" : {"booleanValue" : True }}
106
+ expected_error = {"name" : "expected_error" , "value" : {"booleanValue" : False }}
107
+ unexpected_error = {"name" : "unexpected_error" , "value" : {"booleanValue" : False }}
46
108
assert jobinfo in kwargs ["parameters" ]
109
+ assert succeeded in kwargs ["parameters" ]
110
+ assert expected_error in kwargs ["parameters" ]
111
+ assert unexpected_error in kwargs ["parameters" ]
47
112
assert output == 0
113
+ assert selector in kwargs ["parameters" ]
114
+ assert "WHERE id" in kwargs ["sql" ]
48
115
49
116
50
117
@patch ("lambda_functions.sentinel_ac_logger.rds_client" )
@@ -58,8 +125,14 @@ def test_handler_valueError(client):
58
125
jobinfo_value = {"cause" : event ["jobinfo" ]["Cause" ]}
59
126
60
127
jobinfo = {"name" : "jobinfo" , "value" : {"stringValue" : json .dumps (jobinfo_value )}}
128
+ succeeded = {"name" : "succeeded" , "value" : {"booleanValue" : False }}
129
+ expected_error = {"name" : "expected_error" , "value" : {"booleanValue" : False }}
130
+ unexpected_error = {"name" : "unexpected_error" , "value" : {"booleanValue" : True }}
61
131
client .execute_statement .return_value = {}
62
132
output = handler (event , {})
63
133
args , kwargs = client .execute_statement .call_args
64
134
assert jobinfo in kwargs ["parameters" ]
135
+ assert succeeded in kwargs ["parameters" ]
136
+ assert expected_error in kwargs ["parameters" ]
137
+ assert unexpected_error in kwargs ["parameters" ]
65
138
assert output == "nocode"
0 commit comments