def gbq_dataset(load_args, save_args, mock_bigquery_client): # pylint: disable=unused-argument return GBQTableDataSet( dataset=DATASET, table_name=TABLE_NAME, project=PROJECT, credentials=None, load_args=load_args, save_args=save_args, )
def test_invalid_location(self, save_args, load_args): """Check the error when initializing instance if save_args and load_args `location` are different.""" pattern = ( r"`load_args\['location'\]` is different from `save_args\['location'\]`." ) with pytest.raises(DataSetError, match=pattern): GBQTableDataSet( dataset=DATASET, table_name=TABLE_NAME, project=PROJECT, credentials=None, load_args=load_args, save_args=save_args, )
def test_credentials_propagation(self, mocker): credentials = {"token": "my_token"} credentials_obj = "credentials" mocked_credentials = mocker.patch( "kedro.extras.datasets.pandas.gbq_dataset.Credentials", return_value=credentials_obj, ) mocked_bigquery = mocker.patch( "kedro.extras.datasets.pandas.gbq_dataset.bigquery") data_set = GBQTableDataSet( dataset=DATASET, table_name=TABLE_NAME, credentials=credentials, project=PROJECT, ) assert data_set._credentials == credentials_obj mocked_credentials.assert_called_once_with(**credentials) mocked_bigquery.Client.assert_called_once_with( project=PROJECT, credentials=credentials_obj, location=None)
def test_validation_of_dataset_and_table_name(self, dataset, table_name): pattern = "Neither white-space nor semicolon are allowed.*" with pytest.raises(DataSetError, match=pattern): GBQTableDataSet(dataset=dataset, table_name=table_name)