def test_config_init(self): config1 = ParselmouthConfig( ParselmouthProviders.google_dfp_premium, config_path=self.config_path, ) self.assertDictEqual(self.credentials, config1.get_credentials_arguments()) config2 = ParselmouthConfig( ParselmouthProviders.google_dfp_premium, client_id='ID', client_secret='SECRET', refresh_token='REFRESH_TOKEN', network_code='NETWORK_CODE', application_name='APPLICATION_NAME', ) self.assertDictEqual(self.credentials, config2.get_credentials_arguments())
def __init__(self, config=None, provider_name=None, network_timeout=60 * 10, **kwargs): """ Constructor Authenticates a provider client for the given domain. @param config: parselmouth.config.ParselmouthConfig @param provider_name: any(parselmouth.constants.ParseltoungProvider) @param network_timeout: int, number seconds before timing out a request the given ad provider service """ self._network_timeout = network_timeout self.provider_config = config # Load the provider configuration if self.provider_config and not isinstance(self.provider_config, ParselmouthConfig): raise ParselmouthException( "Invalid config. Config should be of type ParselmouthConfig", ) elif not self.provider_config: self.provider_config = ParselmouthConfig(provider_name, **kwargs) # Get interface for given provider self.provider_name = self.provider_config.provider_name provider_interface_class = self.get_ad_service_interface_for_provider( self.provider_name ) self.provider = provider_interface_class( **self.provider_config.get_credentials_arguments() ) self.tree_builder = TreeBuilder( self.provider_name, self.provider, ) # Attempt to access the network to check proper configuration try: self.get_network_timezone() except Exception as e: raise ParselmouthException( "Provider not configured correctly. Got error: '{}'".format( str(e) ) )
def test_no_config_params(self): with self.assertRaises(ParselmouthException): config = ParselmouthConfig( ParselmouthProviders.google_dfp_premium, )