@@ -304,3 +304,80 @@ def test_get_type_invalid_version(self):
304304 self .assertRaises (
305305 ValueError , google .ads .google_ads .client .GoogleAdsClient .get_type ,
306306 'GoogleAdsFailure' , version = 'v0_bad' )
307+
308+
309+ class MetadataInterceptorTest (TestCase ):
310+
311+ def setUp (self ):
312+ self .mock_developer_token = '1234567890'
313+ self .mock_login_customer_id = '0987654321'
314+
315+ def test_init (self ):
316+ interceptor = google .ads .google_ads .client .MetadataInterceptor (
317+ self .mock_developer_token ,
318+ self .mock_login_customer_id )
319+
320+ self .assertEqual (
321+ interceptor .developer_token_meta ,
322+ ('developer-token' , self .mock_developer_token ))
323+
324+ self .assertEqual (
325+ interceptor .login_customer_id_meta ,
326+ ('login-customer-id' , self .mock_login_customer_id )
327+ )
328+
329+ def test_init_no_login_customer_id (self ):
330+ interceptor = google .ads .google_ads .client .MetadataInterceptor (
331+ self .mock_developer_token ,
332+ None )
333+
334+ self .assertEqual (
335+ interceptor .developer_token_meta ,
336+ ('developer-token' , self .mock_developer_token ))
337+
338+ self .assertEqual (
339+ interceptor .login_customer_id_meta ,
340+ None
341+ )
342+
343+ def test_update_client_call_details_metadata (self ):
344+ interceptor = google .ads .google_ads .client .MetadataInterceptor (
345+ self .mock_developer_token ,
346+ self .mock_login_customer_id )
347+
348+ mock_metadata = list ([('test-key' , 'test-value' )])
349+ mock_client_call_details = mock .Mock ()
350+
351+ client_call_details = interceptor ._update_client_call_details_metadata (
352+ mock_client_call_details , mock_metadata )
353+
354+ self .assertEqual (client_call_details .metadata , mock_metadata )
355+
356+ def test_intercept_unary_unary (self ):
357+ interceptor = google .ads .google_ads .client .MetadataInterceptor (
358+ self .mock_developer_token ,
359+ self .mock_login_customer_id )
360+
361+ mock_continuation = mock .Mock (return_value = None )
362+ mock_client_call_details = mock .Mock ()
363+ mock_client_call_details .method = 'test/method'
364+ mock_client_call_details .timeout = 5
365+ mock_client_call_details .metadata = [('apples' , 'oranges' )]
366+ mock_request = mock .Mock ()
367+
368+ with mock .patch .object (
369+ interceptor ,
370+ '_update_client_call_details_metadata' ,
371+ wraps = interceptor ._update_client_call_details_metadata
372+ ) as mock_updater :
373+ interceptor .intercept_unary_unary (
374+ mock_continuation ,
375+ mock_client_call_details ,
376+ mock_request )
377+
378+ mock_updater .assert_called_once_with (
379+ mock_client_call_details , [mock_client_call_details .metadata [0 ],
380+ interceptor .developer_token_meta ,
381+ interceptor .login_customer_id_meta ])
382+
383+ mock_continuation .assert_called_once ()
0 commit comments