@@ -147,7 +147,7 @@ def test_remote_invoke_with_shared_test_event_command(
147147
148148 context_mock = Mock ()
149149 test_event_mock = Mock ()
150- test_event_mock .get_event .return_value = " stuff"
150+ test_event_mock .get_event .return_value = { "json" : " stuff", "metadata" : {}}
151151 fn_resource = Mock ()
152152 fn_resource .resource_type = AWS_LAMBDA_FUNCTION
153153 context_mock .resource_summary = fn_resource
@@ -191,6 +191,142 @@ def mock_tracker(name, value): # when track_event is called, append an equivale
191191 # Assert metric was emitted
192192 self .assertIn (["RemoteInvokeEventType" , "remote_event" ], tracked_events )
193193
194+ @patch ("samcli.lib.remote_invoke.remote_invoke_executors.RemoteInvokeExecutionInfo" )
195+ @patch ("samcli.lib.utils.boto_utils.get_boto_client_provider_with_config" )
196+ @patch ("samcli.lib.utils.boto_utils.get_boto_resource_provider_with_config" )
197+ @patch ("samcli.commands.remote.remote_invoke_context.RemoteInvokeContext" )
198+ @patch ("samcli.lib.telemetry.event.EventTracker.track_event" )
199+ def test_remote_invoke_with_shared_test_event_metadata_command (
200+ self ,
201+ mock_track_event ,
202+ mock_remote_invoke_context ,
203+ patched_get_boto_resource_provider_with_config ,
204+ patched_get_boto_client_provider_with_config ,
205+ patched_remote_invoke_execution_info ,
206+ ):
207+ given_client_provider = Mock ()
208+ patched_get_boto_client_provider_with_config .return_value = given_client_provider
209+
210+ given_resource_provider = Mock ()
211+ patched_get_boto_resource_provider_with_config .return_value = given_resource_provider
212+
213+ given_remote_invoke_execution_info = Mock ()
214+ patched_remote_invoke_execution_info .return_value = given_remote_invoke_execution_info
215+
216+ context_mock = Mock ()
217+ test_event_mock = Mock ()
218+ test_event_mock .get_event .return_value = {"json" : "stuff" , "metadata" : {"invocationType" : "Event" }}
219+ fn_resource = Mock ()
220+ fn_resource .resource_type = AWS_LAMBDA_FUNCTION
221+ context_mock .resource_summary = fn_resource
222+ context_mock .get_lambda_shared_test_event_provider .return_value = test_event_mock
223+ mock_remote_invoke_context .return_value .__enter__ .return_value = context_mock
224+
225+ given_remote_invoke_result = Mock ()
226+ given_remote_invoke_result .is_succeeded .return_value = True
227+ given_remote_invoke_result .log_output = "log_output"
228+ context_mock .run .return_value = given_remote_invoke_result
229+
230+ tracked_events = []
231+
232+ def mock_tracker (name , value ): # when track_event is called, append an equivalent event to our list
233+ tracked_events .append ([name , value ])
234+
235+ mock_track_event .side_effect = mock_tracker
236+
237+ do_cli (
238+ stack_name = self .stack_name ,
239+ resource_id = self .resource_id ,
240+ event = None ,
241+ event_file = None ,
242+ parameter = {},
243+ output = RemoteInvokeOutputFormat .TEXT ,
244+ test_event_name = "event1" ,
245+ region = self .region ,
246+ profile = self .profile ,
247+ config_file = self .config_file ,
248+ config_env = self .config_env ,
249+ )
250+
251+ test_event_mock .get_event .assert_called_with ("event1" , fn_resource )
252+ patched_remote_invoke_execution_info .assert_called_with (
253+ payload = "stuff" ,
254+ payload_file = None ,
255+ parameters = {"InvocationType" : "Event" },
256+ output_format = RemoteInvokeOutputFormat .TEXT ,
257+ )
258+ context_mock .run .assert_called_with (remote_invoke_input = given_remote_invoke_execution_info )
259+ # Assert metric was emitted
260+ self .assertIn (["RemoteInvokeEventType" , "remote_event" ], tracked_events )
261+
262+ @patch ("samcli.lib.remote_invoke.remote_invoke_executors.RemoteInvokeExecutionInfo" )
263+ @patch ("samcli.lib.utils.boto_utils.get_boto_client_provider_with_config" )
264+ @patch ("samcli.lib.utils.boto_utils.get_boto_resource_provider_with_config" )
265+ @patch ("samcli.commands.remote.remote_invoke_context.RemoteInvokeContext" )
266+ @patch ("samcli.lib.telemetry.event.EventTracker.track_event" )
267+ def test_remote_invoke_with_shared_test_event_metadata_and_cli_overrides_command (
268+ self ,
269+ mock_track_event ,
270+ mock_remote_invoke_context ,
271+ patched_get_boto_resource_provider_with_config ,
272+ patched_get_boto_client_provider_with_config ,
273+ patched_remote_invoke_execution_info ,
274+ ):
275+ given_client_provider = Mock ()
276+ patched_get_boto_client_provider_with_config .return_value = given_client_provider
277+
278+ given_resource_provider = Mock ()
279+ patched_get_boto_resource_provider_with_config .return_value = given_resource_provider
280+
281+ given_remote_invoke_execution_info = Mock ()
282+ patched_remote_invoke_execution_info .return_value = given_remote_invoke_execution_info
283+
284+ context_mock = Mock ()
285+ test_event_mock = Mock ()
286+ test_event_mock .get_event .return_value = {"json" : "stuff" , "metadata" : {"invocationType" : "Event" }}
287+ fn_resource = Mock ()
288+ fn_resource .resource_type = AWS_LAMBDA_FUNCTION
289+ context_mock .resource_summary = fn_resource
290+ context_mock .get_lambda_shared_test_event_provider .return_value = test_event_mock
291+ mock_remote_invoke_context .return_value .__enter__ .return_value = context_mock
292+
293+ given_remote_invoke_result = Mock ()
294+ given_remote_invoke_result .is_succeeded .return_value = True
295+ given_remote_invoke_result .log_output = "log_output"
296+ context_mock .run .return_value = given_remote_invoke_result
297+
298+ tracked_events = []
299+
300+ def mock_tracker (name , value ): # when track_event is called, append an equivalent event to our list
301+ tracked_events .append ([name , value ])
302+
303+ mock_track_event .side_effect = mock_tracker
304+
305+ do_cli (
306+ stack_name = self .stack_name ,
307+ resource_id = self .resource_id ,
308+ event = None ,
309+ event_file = None ,
310+ parameter = {"InvocationType" : "RequestResponse" },
311+ output = RemoteInvokeOutputFormat .TEXT ,
312+ test_event_name = "event1" ,
313+ region = self .region ,
314+ profile = self .profile ,
315+ config_file = self .config_file ,
316+ config_env = self .config_env ,
317+ )
318+
319+ test_event_mock .get_event .assert_called_with ("event1" , fn_resource )
320+ patched_remote_invoke_execution_info .assert_called_with (
321+ payload = "stuff" ,
322+ payload_file = None ,
323+ parameters = {"InvocationType" : "RequestResponse" },
324+ output_format = RemoteInvokeOutputFormat .TEXT ,
325+ )
326+ context_mock .run .assert_called_with (remote_invoke_input = given_remote_invoke_execution_info )
327+ # Assert metric was emitted
328+ self .assertIn (["RemoteInvokeEventType" , "remote_event" ], tracked_events )
329+
194330 @patch ("samcli.lib.remote_invoke.remote_invoke_executors.RemoteInvokeExecutionInfo" )
195331 @patch ("samcli.lib.utils.boto_utils.get_boto_client_provider_with_config" )
196332 @patch ("samcli.lib.utils.boto_utils.get_boto_resource_provider_with_config" )
0 commit comments