def test_invoke_worker_reported_error(self, lambda_stubber: Stubber): lambda_stubber.add_response( 'invoke', { 'Payload': io.StringIO('{"status": "error", "message":"error happened"}') }, ) status, message = remediate.invoke_worker('worker', {}) lambda_stubber.assert_no_pending_responses() assert status == RemediationStatus.ERROR assert message == 'error happened'
def test_invoke_worker_error(self, lambda_stubber: Stubber): lambda_stubber.add_response( 'invoke', { 'FunctionError': 'Unhandled', 'Payload': io.StringIO('{"error": "TypeError"}') }, ) status, message = remediate.invoke_worker('worker', {}) lambda_stubber.assert_no_pending_responses() assert status == RemediationStatus.ERROR assert message == '{"error": "TypeError"}'
def test_invoke_worker_lambda_error(self, lambda_stubber: Stubber): lambda_stubber.add_client_error('invoke', 'ResourceNotFoundException', '', 404, expected_params={ 'FunctionName': 'worker', 'Payload': ANY }) status, message = remediate.invoke_worker('worker', {}) lambda_stubber.assert_no_pending_responses() assert status == RemediationStatus.ERROR assert message == 'Error invoking remediation worker'
def test_invoke_worker_invalid_json(self, lambda_stubber: Stubber): lambda_stubber.add_response( 'invoke', { 'Payload': io.StringIO( '{"status: "invalid_status", "message":"error happened"}') }, ) status, message = remediate.invoke_worker('worker', {}) lambda_stubber.assert_no_pending_responses() assert status == RemediationStatus.ERROR assert message == 'Invalid JSON response from remediation'
def test_invoke_worker_valid_response(self, lambda_stubber: Stubber): lambda_stubber.add_response( 'invoke', { 'Payload': io.StringIO( '{"status": "iacOverrideRequired", "message":"iac override required"}' ) }, ) status, message = remediate.invoke_worker('worker', {}) lambda_stubber.assert_no_pending_responses() assert status == 'iacOverrideRequired' assert message == 'iac override required'