@@ -439,6 +439,50 @@ def test_load_from_dict_versioned(self):
439439 ads_assistant = None ,
440440 )
441441
442+ def test_load_from_dict_login_customer_id_explicit_none (self ):
443+ config = {
444+ ** self .default_config ,
445+ ** {
446+ "client_id" : self .client_id ,
447+ "client_secret" : self .client_secret ,
448+ "refresh_token" : self .refresh_token ,
449+ "login_customer_id" : None ,
450+ },
451+ }
452+ mock_credentials_instance = mock .Mock ()
453+
454+ with (
455+ mock .patch .object (
456+ Client .GoogleAdsClient , "__init__" , return_value = None
457+ ) as mock_client_init ,
458+ mock .patch .object (
459+ Client .oauth2 ,
460+ "get_installed_app_credentials" ,
461+ return_value = mock_credentials_instance ,
462+ ) as mock_credentials ,
463+ ):
464+ try :
465+ Client .GoogleAdsClient .load_from_dict (config )
466+ except ValueError as ex :
467+ self .fail (
468+ "GoogleAdsClient.load_from_dict raised ValueError "
469+ f"unexpectedly when login_customer_id is None: { ex } "
470+ )
471+
472+ mock_client_init .assert_called_once_with (
473+ credentials = mock_credentials_instance ,
474+ developer_token = self .developer_token ,
475+ use_proto_plus = self .use_proto_plus ,
476+ endpoint = None ,
477+ login_customer_id = None ,
478+ logging_config = None ,
479+ linked_customer_id = None ,
480+ version = None ,
481+ http_proxy = None ,
482+ use_cloud_org_for_api_access = None ,
483+ ads_assistant = None ,
484+ )
485+
442486 def test_load_from_string (self ):
443487 config = {
444488 ** self .default_config ,
0 commit comments