22
33import json
44import unittest
5+ from types import SimpleNamespace
56from unittest .mock import patch , Mock
67from urllib .error import HTTPError
78
@@ -17,6 +18,7 @@ class TestCallDatadogAgentlessAPI(unittest.TestCase):
1718
1819 def setUp (self ):
1920 """Set up test fixtures"""
21+ self .context = SimpleNamespace (invoked_function_arn = "arn:aws:lambda:us-east-1:012345678901:function:DatadogAgentlessAPICallFunction" )
2022 self .base_event = {
2123 "ResourceProperties" : {
2224 "TemplateVersion" : "1.0.0" ,
@@ -55,7 +57,7 @@ def test_post_success_200(self, mock_is_enabled, mock_urlopen):
5557 mock_response = self .create_mock_response (200 )
5658 mock_urlopen .return_value = mock_response
5759
58- result = call_datadog_agentless_api (self .base_event , "POST" )
60+ result = call_datadog_agentless_api (self .context , self . base_event , "POST" )
5961
6062 self .assertEqual (result .status , 200 )
6163
@@ -71,7 +73,7 @@ def test_post_success_201(self, mock_is_enabled, mock_urlopen):
7173 mock_response = self .create_mock_response (201 )
7274 mock_urlopen .return_value = mock_response
7375
74- result = call_datadog_agentless_api (self .base_event , "POST" )
76+ result = call_datadog_agentless_api (self .context , self . base_event , "POST" )
7577
7678 self .assertEqual (result .status , 201 )
7779
@@ -83,7 +85,7 @@ def test_post_success_204(self, mock_is_enabled, mock_urlopen):
8385 mock_response = self .create_mock_response (204 )
8486 mock_urlopen .return_value = mock_response
8587
86- result = call_datadog_agentless_api (self .base_event , "POST" )
88+ result = call_datadog_agentless_api (self .context , self . base_event , "POST" )
8789
8890 self .assertEqual (result .status , 204 )
8991
@@ -96,7 +98,7 @@ def test_post_error_400(self, mock_is_enabled, mock_urlopen):
9698 mock_urlopen .side_effect = mock_error
9799
98100 with self .assertRaises (HTTPError ):
99- call_datadog_agentless_api (self .base_event , "POST" )
101+ call_datadog_agentless_api (self .context , self . base_event , "POST" )
100102
101103 @patch ("datadog_agentless_api_call.urllib.request.urlopen" )
102104 @patch ("datadog_agentless_api_call.is_agentless_scanning_enabled" )
@@ -107,7 +109,7 @@ def test_post_error_404(self, mock_is_enabled, mock_urlopen):
107109 mock_urlopen .side_effect = mock_error
108110
109111 with self .assertRaises (HTTPError ):
110- call_datadog_agentless_api (self .base_event , "POST" )
112+ call_datadog_agentless_api (self .context , self . base_event , "POST" )
111113
112114 @patch ("datadog_agentless_api_call.urllib.request.urlopen" )
113115 @patch ("datadog_agentless_api_call.is_agentless_scanning_enabled" )
@@ -118,7 +120,7 @@ def test_post_error_500(self, mock_is_enabled, mock_urlopen):
118120 mock_urlopen .side_effect = mock_error
119121
120122 with self .assertRaises (HTTPError ):
121- call_datadog_agentless_api (self .base_event , "POST" )
123+ call_datadog_agentless_api (self .context , self . base_event , "POST" )
122124
123125 @patch ("datadog_agentless_api_call.urllib.request.urlopen" )
124126 @patch ("datadog_agentless_api_call.is_agentless_scanning_enabled" )
@@ -128,7 +130,7 @@ def test_post_patch_when_enabled(self, mock_is_enabled, mock_urlopen):
128130 mock_response = self .create_mock_response (200 )
129131 mock_urlopen .return_value = mock_response
130132
131- result = call_datadog_agentless_api (self .base_event , "POST" )
133+ result = call_datadog_agentless_api (self .context , self . base_event , "POST" )
132134
133135 self .assertEqual (result .status , 200 )
134136
@@ -142,7 +144,7 @@ def test_delete_success_200(self, mock_urlopen):
142144 mock_response = self .create_mock_response (200 )
143145 mock_urlopen .return_value = mock_response
144146
145- result = call_datadog_agentless_api (self .base_event , "DELETE" )
147+ result = call_datadog_agentless_api (self .context , self . base_event , "DELETE" )
146148
147149 self .assertEqual (result .status , 200 )
148150
@@ -152,7 +154,7 @@ def test_delete_success_204(self, mock_urlopen):
152154 mock_response = self .create_mock_response (204 )
153155 mock_urlopen .return_value = mock_response
154156
155- result = call_datadog_agentless_api (self .base_event , "DELETE" )
157+ result = call_datadog_agentless_api (self .context , self . base_event , "DELETE" )
156158
157159 self .assertEqual (result .status , 204 )
158160
@@ -162,7 +164,7 @@ def test_delete_error_404_returns_error(self, mock_urlopen):
162164 mock_error = self .create_mock_http_error (404 )
163165 mock_urlopen .side_effect = mock_error
164166
165- result = call_datadog_agentless_api (self .base_event , "DELETE" )
167+ result = call_datadog_agentless_api (self .context , self . base_event , "DELETE" )
166168
167169 self .assertEqual (result .status , 404 )
168170
@@ -173,11 +175,11 @@ def test_delete_error_500_raises_exception(self, mock_urlopen):
173175 mock_urlopen .side_effect = mock_error
174176
175177 with self .assertRaises (HTTPError ):
176- call_datadog_agentless_api (self .base_event , "DELETE" )
178+ call_datadog_agentless_api (self .context , self . base_event , "DELETE" )
177179
178180 def test_unsupported_method_returns_none (self ):
179181 """Test that unsupported HTTP methods return None"""
180- result = call_datadog_agentless_api (self .base_event , "PUT" )
182+ result = call_datadog_agentless_api (self .context , self . base_event , "PUT" )
181183 self .assertIsNone (result )
182184
183185 @patch ("datadog_agentless_api_call.urllib.request.urlopen" )
@@ -188,7 +190,7 @@ def test_post_request_payload_structure(self, mock_is_enabled, mock_urlopen):
188190 mock_response = self .create_mock_response (200 )
189191 mock_urlopen .return_value = mock_response
190192
191- call_datadog_agentless_api (self .base_event , "POST" )
193+ call_datadog_agentless_api (self .context , self . base_event , "POST" )
192194
193195 # Get the request that was made
194196 call_args = mock_urlopen .call_args [0 ][0 ]
0 commit comments