55from data_diff .cloud .datafold_api import TCloudApiOrgMeta
66from data_diff .diff_tables import Algorithm
77from data_diff .errors import (
8- DataDiffDbtBigQueryOauthOnlyError ,
8+ DataDiffDbtBigQueryUnsupportedMethodError ,
99 DataDiffDbtConnectionNotImplementedError ,
1010 DataDiffDbtCoreNoRunnerError ,
1111 DataDiffDbtNoSuccessfulModelsInRunError ,
@@ -276,7 +276,7 @@ def test_set_connection_snowflake_key_and_password(self):
276276
277277 self .assertNotIsInstance (mock_self .connection , dict )
278278
279- def test_set_connection_bigquery_success (self ):
279+ def test_set_connection_bigquery_oauth (self ):
280280 expected_driver = "bigquery"
281281 expected_credentials = {
282282 "method" : "oauth" ,
@@ -293,17 +293,36 @@ def test_set_connection_bigquery_success(self):
293293 self .assertEqual (mock_self .connection .get ("project" ), expected_credentials ["project" ])
294294 self .assertEqual (mock_self .connection .get ("dataset" ), expected_credentials ["dataset" ])
295295
296- def test_set_connection_bigquery_not_oauth (self ):
296+ def test_set_connection_bigquery_svc_account (self ):
297297 expected_driver = "bigquery"
298298 expected_credentials = {
299- "method" : "not_oauth" ,
299+ "method" : "service-account" ,
300+ "project" : "a_project" ,
301+ "dataset" : "a_dataset" ,
302+ "keyfile" : "/some/path" ,
303+ }
304+ mock_self = Mock ()
305+ mock_self .get_connection_creds .return_value = (expected_credentials , expected_driver )
306+
307+ DbtParser .set_connection (mock_self )
308+
309+ self .assertIsInstance (mock_self .connection , dict )
310+ self .assertEqual (mock_self .connection .get ("driver" ), expected_driver )
311+ self .assertEqual (mock_self .connection .get ("project" ), expected_credentials ["project" ])
312+ self .assertEqual (mock_self .connection .get ("dataset" ), expected_credentials ["dataset" ])
313+ self .assertEqual (mock_self .connection .get ("keyfile" ), expected_credentials ["keyfile" ])
314+
315+ def test_set_connection_bigquery_not_supported (self ):
316+ expected_driver = "bigquery"
317+ expected_credentials = {
318+ "method" : "not_supported" ,
300319 "project" : "a_project" ,
301320 "dataset" : "a_dataset" ,
302321 }
303322
304323 mock_self = Mock ()
305324 mock_self .get_connection_creds .return_value = (expected_credentials , expected_driver )
306- with self .assertRaises (DataDiffDbtBigQueryOauthOnlyError ):
325+ with self .assertRaises (DataDiffDbtBigQueryUnsupportedMethodError ):
307326 DbtParser .set_connection (mock_self )
308327
309328 self .assertNotIsInstance (mock_self .connection , dict )
0 commit comments