55from data_diff .cloud .datafold_api import TCloudApiOrgMeta
66from data_diff .diff_tables import Algorithm
77from data_diff .errors import (
8+ DataDiffDbtBigQueryUnsupportedMethodError ,
89 DataDiffCustomSchemaNoConfigError ,
9- DataDiffDbtBigQueryOauthOnlyError ,
1010 DataDiffDbtConnectionNotImplementedError ,
1111 DataDiffDbtCoreNoRunnerError ,
1212 DataDiffDbtNoSuccessfulModelsInRunError ,
@@ -271,7 +271,7 @@ def test_set_connection_snowflake_key_and_password(self):
271271
272272 self .assertNotIsInstance (mock_self .connection , dict )
273273
274- def test_set_connection_bigquery_success (self ):
274+ def test_set_connection_bigquery_oauth (self ):
275275 expected_driver = "bigquery"
276276 expected_credentials = {
277277 "method" : "oauth" ,
@@ -288,17 +288,36 @@ def test_set_connection_bigquery_success(self):
288288 self .assertEqual (mock_self .connection .get ("project" ), expected_credentials ["project" ])
289289 self .assertEqual (mock_self .connection .get ("dataset" ), expected_credentials ["dataset" ])
290290
291- def test_set_connection_bigquery_not_oauth (self ):
291+ def test_set_connection_bigquery_svc_account (self ):
292292 expected_driver = "bigquery"
293293 expected_credentials = {
294- "method" : "not_oauth" ,
294+ "method" : "service-account" ,
295+ "project" : "a_project" ,
296+ "dataset" : "a_dataset" ,
297+ "keyfile" : "/some/path" ,
298+ }
299+ mock_self = Mock ()
300+ mock_self .get_connection_creds .return_value = (expected_credentials , expected_driver )
301+
302+ DbtParser .set_connection (mock_self )
303+
304+ self .assertIsInstance (mock_self .connection , dict )
305+ self .assertEqual (mock_self .connection .get ("driver" ), expected_driver )
306+ self .assertEqual (mock_self .connection .get ("project" ), expected_credentials ["project" ])
307+ self .assertEqual (mock_self .connection .get ("dataset" ), expected_credentials ["dataset" ])
308+ self .assertEqual (mock_self .connection .get ("keyfile" ), expected_credentials ["keyfile" ])
309+
310+ def test_set_connection_bigquery_not_supported (self ):
311+ expected_driver = "bigquery"
312+ expected_credentials = {
313+ "method" : "not_supported" ,
295314 "project" : "a_project" ,
296315 "dataset" : "a_dataset" ,
297316 }
298317
299318 mock_self = Mock ()
300319 mock_self .get_connection_creds .return_value = (expected_credentials , expected_driver )
301- with self .assertRaises (DataDiffDbtBigQueryOauthOnlyError ):
320+ with self .assertRaises (DataDiffDbtBigQueryUnsupportedMethodError ):
302321 DbtParser .set_connection (mock_self )
303322
304323 self .assertNotIsInstance (mock_self .connection , dict )
0 commit comments