22from decimal import Decimal
33from enum import Enum
44from typing import Dict , List , Tuple , Union
5+ from unittest .mock import Mock , patch , MagicMock
6+ from databricks .sql import Error
57
6- import pytz
8+ import pytest
79
810from databricks .sql .exc import DatabaseError
911from databricks .sql .utils import (
@@ -29,19 +31,18 @@ def _get_one_result(self, query: str, parameters: Union[Dict, List[Dict]]) -> Tu
2931 with conn .cursor () as cursor :
3032 cursor .execute (query , parameters = parameters )
3133 return cursor .fetchone ()
32-
33- def _test_protocol_checking (self ) -> Tuple :
34- with self .connection () as conn :
35- with conn .cursor () as cursor :
36- cursor .execute (query , parameters = parameters )
37- return cursor .fetchone ()
38-
34+
3935 def _quantize (self , input : Union [float , int ], place_value = 2 ) -> Decimal :
4036
4137 return Decimal (str (input )).quantize (Decimal ("0." + "0" * place_value ))
4238
39+ @patch ('databricks.sql.client.Connection.server_parameterized_queries_enabled' , return_value = False )
40+ def test_protocol_too_low (self , mock_parameterized_queries_enabled ):
41+ params = {"p" : None }
42+ with pytest .raises (Error , match = "Parameterized operations are not supported by this server. DBR 14.1 is required." ):
43+ result = self ._get_one_result (self .QUERY , params )
44+
4345 def test_primitive_inferred_none (self ):
44-
4546 params = {"p" : None }
4647 result = self ._get_one_result (self .QUERY , params )
4748 assert result .col == None
0 commit comments