15
15
from datadog_checks .sqlserver import SQLServer
16
16
from datadog_checks .sqlserver .connection import split_sqlserver_host_port
17
17
from datadog_checks .sqlserver .metrics import SqlFractionMetric , SqlMasterDatabaseFileStats
18
- from datadog_checks .sqlserver .schemas import SubmitData
19
- from datadog_checks .sqlserver .schemas import Schemas
18
+ from datadog_checks .sqlserver .schemas import Schemas , SubmitData
20
19
from datadog_checks .sqlserver .sqlserver import SQLConnectionError
21
20
from datadog_checks .sqlserver .utils import (
22
21
Database ,
25
24
set_default_driver_conf ,
26
25
)
27
26
28
- from cachetools import TTLCache
29
-
30
27
from .common import CHECK_NAME , DOCKER_SERVER , assert_metrics
31
28
from .utils import windows_ci
32
29
@@ -809,13 +806,14 @@ def test_submit_data():
809
806
)
810
807
assert len (difference ) == 0
811
808
809
+
812
810
def test_submit_data_for_db_without_info ():
813
811
814
812
dataSubmitter , submitted_data = set_up_submitter_unit_test ()
815
813
816
814
schema1 = {"id" : "1" }
817
815
dataSubmitter .store ("test_db1" , schema1 , [1 , 2 ], 5 )
818
-
816
+
819
817
dataSubmitter .submit ()
820
818
expected_data = {
821
819
"host" : "some" ,
@@ -837,36 +835,46 @@ def test_submit_data_for_db_without_info():
837
835
)
838
836
assert len (difference ) == 0
839
837
838
+
840
839
def test_fetch_throws (instance_docker ):
841
840
check = SQLServer (CHECK_NAME , {}, [instance_docker ])
842
841
schemas = Schemas (check , check ._config )
843
- with mock .patch ('time.time' , side_effect = [0 , 9999999 ]), \
844
- mock . patch ( 'datadog_checks.sqlserver.schemas.Schemas._query_schema_information' , return_value = {"id" : 1 }), \
845
- mock .patch ('datadog_checks.sqlserver.schemas.Schemas._get_tables' , return_value = [1 ,2 ]):
842
+ with mock .patch ('time.time' , side_effect = [0 , 9999999 ]), mock . patch (
843
+ 'datadog_checks.sqlserver.schemas.Schemas._query_schema_information' , return_value = {"id" : 1 }
844
+ ), mock .patch ('datadog_checks.sqlserver.schemas.Schemas._get_tables' , return_value = [1 , 2 ]):
846
845
with pytest .raises (StopIteration ):
847
846
schemas ._fetch_schema_data ("dummy_cursor" , "my_db" )
848
847
848
+
849
849
def test_submit_is_called_if_too_many_columns (instance_docker ):
850
850
check = SQLServer (CHECK_NAME , {}, [instance_docker ])
851
851
schemas = Schemas (check , check ._config )
852
- with mock .patch ('time.time' , side_effect = [0 , 0 ]), \
853
- mock .patch ('datadog_checks.sqlserver.schemas.Schemas._query_schema_information' , return_value = {"id" :1 }), \
854
- mock .patch ('datadog_checks.sqlserver.schemas.Schemas._get_tables' , return_value = [1 ,2 ]), \
855
- mock .patch ('datadog_checks.sqlserver.schemas.SubmitData.submit' ) as mocked_submit , \
856
- mock .patch ('datadog_checks.sqlserver.schemas.Schemas._get_tables_data' , return_value = (1000_000 , {"id" : 1 })):
852
+ with mock .patch ('time.time' , side_effect = [0 , 0 ]), mock .patch (
853
+ 'datadog_checks.sqlserver.schemas.Schemas._query_schema_information' , return_value = {"id" : 1 }
854
+ ), mock .patch ('datadog_checks.sqlserver.schemas.Schemas._get_tables' , return_value = [1 , 2 ]), mock .patch (
855
+ 'datadog_checks.sqlserver.schemas.SubmitData.submit'
856
+ ) as mocked_submit , mock .patch (
857
+ 'datadog_checks.sqlserver.schemas.Schemas._get_tables_data' , return_value = (1000_000 , {"id" : 1 })
858
+ ):
857
859
with pytest .raises (StopIteration ):
858
860
schemas ._fetch_schema_data ("dummy_cursor" , "my_db" )
859
861
mocked_submit .called_once ()
860
862
863
+
861
864
def test_exception_handling_by_do_for_dbs (instance_docker ):
862
865
check = SQLServer (CHECK_NAME , {}, [instance_docker ])
863
866
check .initialize_connection ()
864
867
schemas = Schemas (check , check ._config )
865
868
mock_cursor = mock .MagicMock ()
866
- with mock .patch ('datadog_checks.sqlserver.schemas.Schemas._fetch_schema_data' , side_effect = Exception ("Can't connect to DB" )), \
867
- mock .patch ('datadog_checks.sqlserver.sqlserver.SQLServer.get_databases' , return_value = ["db1" ]), \
868
- mock .patch ('cachetools.TTLCache.get' , return_value = "dummy" ), \
869
- mock .patch ('datadog_checks.sqlserver.connection.Connection.open_managed_default_connection' ), \
870
- mock .patch ('datadog_checks.sqlserver.connection.Connection.get_managed_cursor' , return_value = mock_cursor ), \
871
- mock .patch ('datadog_checks.sqlserver.utils.is_azure_sql_database' , return_value = {}):
872
- schemas ._fetch_for_databases ()
869
+ with mock .patch (
870
+ 'datadog_checks.sqlserver.schemas.Schemas._fetch_schema_data' , side_effect = Exception ("Can't connect to DB" )
871
+ ), mock .patch ('datadog_checks.sqlserver.sqlserver.SQLServer.get_databases' , return_value = ["db1" ]), mock .patch (
872
+ 'cachetools.TTLCache.get' , return_value = "dummy"
873
+ ), mock .patch (
874
+ 'datadog_checks.sqlserver.connection.Connection.open_managed_default_connection'
875
+ ), mock .patch (
876
+ 'datadog_checks.sqlserver.connection.Connection.get_managed_cursor' , return_value = mock_cursor
877
+ ), mock .patch (
878
+ 'datadog_checks.sqlserver.utils.is_azure_sql_database' , return_value = {}
879
+ ):
880
+ schemas ._fetch_for_databases ()
0 commit comments