@@ -124,6 +124,10 @@ def test_task_enqueue(self):
124124 assert recorder [0 ].headers ['x-goog-api-client' ] == expected_metrics_header
125125 assert task_id == 'test-task-id'
126126
127+ task = json .loads (recorder [0 ].body .decode ())['task' ]
128+ assert task ['http_request' ]['oidc_token' ] == {'service_account_email' : 'mock-email' }
129+ assert task ['http_request' ]['headers' ] == {'Content-Type' : 'application/json' }
130+
127131 def test_task_enqueue_with_extension (self ):
128132 resource_name = (
129133 'projects/test-project/locations/us-central1/queues/'
@@ -142,6 +146,59 @@ def test_task_enqueue_with_extension(self):
142146 assert recorder [0 ].headers ['x-goog-api-client' ] == expected_metrics_header
143147 assert task_id == 'test-task-id'
144148
149+ task = json .loads (recorder [0 ].body .decode ())['task' ]
150+ assert task ['http_request' ]['oidc_token' ] == {'service_account_email' : 'mock-email' }
151+ assert task ['http_request' ]['headers' ] == {'Content-Type' : 'application/json' }
152+
153+ def test_task_enqueue_compute_engine (self ):
154+ app = firebase_admin .initialize_app (
155+ testutils .MockComputeEngineCredential (),
156+ options = {'projectId' : 'test-project' },
157+ name = 'test-project-gce' )
158+ _ , recorder = self ._instrument_functions_service (app )
159+ queue = functions .task_queue ('test-function-name' , app = app )
160+ task_id = queue .enqueue (_DEFAULT_DATA )
161+ assert len (recorder ) == 1
162+ assert recorder [0 ].method == 'POST'
163+ assert recorder [0 ].url == _DEFAULT_REQUEST_URL
164+ assert recorder [0 ].headers ['Content-Type' ] == 'application/json'
165+ assert recorder [0 ].headers ['Authorization' ] == 'Bearer mock-compute-engine-token'
166+ expected_metrics_header = _utils .get_metrics_header () + ' mock-gce-cred-metric-tag'
167+ assert recorder [0 ].headers ['x-goog-api-client' ] == expected_metrics_header
168+ assert task_id == 'test-task-id'
169+
170+ task = json .loads (recorder [0 ].body .decode ())['task' ]
171+ assert task ['http_request' ]['oidc_token' ] == {'service_account_email' : 'mock-gce-email' }
172+ assert task ['http_request' ]['headers' ] == {'Content-Type' : 'application/json' }
173+
174+ def test_task_enqueue_with_extension_compute_engine (self ):
175+ resource_name = (
176+ 'projects/test-project/locations/us-central1/queues/'
177+ 'ext-test-extension-id-test-function-name/tasks'
178+ )
179+ extension_response = json .dumps ({'name' : resource_name + '/test-task-id' })
180+ app = firebase_admin .initialize_app (
181+ testutils .MockComputeEngineCredential (),
182+ options = {'projectId' : 'test-project' },
183+ name = 'test-project-gce-extensions' )
184+ _ , recorder = self ._instrument_functions_service (app , payload = extension_response )
185+ queue = functions .task_queue ('test-function-name' , 'test-extension-id' , app )
186+ task_id = queue .enqueue (_DEFAULT_DATA )
187+ assert len (recorder ) == 1
188+ assert recorder [0 ].method == 'POST'
189+ assert recorder [0 ].url == _CLOUD_TASKS_URL + resource_name
190+ assert recorder [0 ].headers ['Content-Type' ] == 'application/json'
191+ assert recorder [0 ].headers ['Authorization' ] == 'Bearer mock-compute-engine-token'
192+ expected_metrics_header = _utils .get_metrics_header () + ' mock-gce-cred-metric-tag'
193+ assert recorder [0 ].headers ['x-goog-api-client' ] == expected_metrics_header
194+ assert task_id == 'test-task-id'
195+
196+ task = json .loads (recorder [0 ].body .decode ())['task' ]
197+ assert 'oidc_token' not in task ['http_request' ]
198+ assert task ['http_request' ]['headers' ] == {
199+ 'Content-Type' : 'application/json' ,
200+ 'Authorization' : 'Bearer mock-compute-engine-token' }
201+
145202 def test_task_delete (self ):
146203 _ , recorder = self ._instrument_functions_service ()
147204 queue = functions .task_queue ('test-function-name' )
0 commit comments