@@ -633,6 +633,61 @@ def mock_close_normal():
633633 cursors_closed , [1 , 2 ], "Both cursors should have close called"
634634 )
635635
636+ @patch ("%s.session.ThriftDatabricksClient" % PACKAGE_NAME )
637+ @patch ("databricks.sql.client.logger" )
638+ def test_unknown_connection_param_issues_warning (
639+ self , mock_logger , mock_client_class
640+ ):
641+ """Unknown kwargs passed to Connection should trigger a warning."""
642+ databricks .sql .connect (
643+ ** self .DUMMY_CONNECTION_ARGS , totally_unknown_param = "value"
644+ )
645+ mock_logger .warning .assert_called_once ()
646+ warning_msg = mock_logger .warning .call_args [0 ][0 ]
647+ self .assertIn ("Unsupported connection parameter" , warning_msg )
648+
649+ @patch ("%s.session.ThriftDatabricksClient" % PACKAGE_NAME )
650+ @patch ("databricks.sql.client.logger" )
651+ def test_unknown_connection_param_warning_names_the_param (
652+ self , mock_logger , mock_client_class
653+ ):
654+ """Warning message should include the name of the unknown parameter."""
655+ databricks .sql .connect (
656+ ** self .DUMMY_CONNECTION_ARGS , totally_unknown_param = "value"
657+ )
658+ # The unknown param name should appear in the warning args
659+ call_args = mock_logger .warning .call_args
660+ formatted_msg = call_args [0 ][0 ] % call_args [0 ][1 :]
661+ self .assertIn ("totally_unknown_param" , formatted_msg )
662+
663+ @patch ("%s.session.ThriftDatabricksClient" % PACKAGE_NAME )
664+ @patch ("databricks.sql.client.logger" )
665+ def test_known_connection_params_do_not_issue_warning (
666+ self , mock_logger , mock_client_class
667+ ):
668+ """Known kwargs passed to Connection should not trigger an unknown-param warning."""
669+ databricks .sql .connect (** self .DUMMY_CONNECTION_ARGS , use_cloud_fetch = False )
670+ for call in mock_logger .warning .call_args_list :
671+ msg = call [0 ][0 ]
672+ self .assertNotIn ("Unsupported connection parameter" , msg )
673+
674+ @patch ("%s.session.ThriftDatabricksClient" % PACKAGE_NAME )
675+ @patch ("databricks.sql.client.logger" )
676+ def test_multiple_unknown_params_all_appear_in_warning (
677+ self , mock_logger , mock_client_class
678+ ):
679+ """All unknown param names should appear in the warning message."""
680+ databricks .sql .connect (
681+ ** self .DUMMY_CONNECTION_ARGS ,
682+ bad_param_one = "a" ,
683+ bad_param_two = "b" ,
684+ )
685+ mock_logger .warning .assert_called_once ()
686+ call_args = mock_logger .warning .call_args
687+ formatted_msg = call_args [0 ][0 ] % call_args [0 ][1 :]
688+ self .assertIn ("bad_param_one" , formatted_msg )
689+ self .assertIn ("bad_param_two" , formatted_msg )
690+
636691
637692class TransactionTestSuite (unittest .TestCase ):
638693 """
0 commit comments