@@ -742,7 +742,7 @@ def test_get_dataset(self):
742742 final_attributes .assert_called_once_with ({"path" : "/%s" % path }, client , None )
743743
744744 conn .api_request .assert_called_once_with (
745- method = "GET" , path = "/%s" % path , timeout = 7.5
745+ method = "GET" , path = "/%s" % path , timeout = 7.5 , query_params = {}
746746 )
747747 self .assertEqual (dataset .dataset_id , self .DS_ID )
748748
@@ -808,19 +808,7 @@ def test_get_dataset(self):
808808
809809 self .assertEqual (dataset .dataset_id , self .DS_ID )
810810
811- @pytest .mark .parametrize (
812- "dataset_view_arg,expected_param_value" ,
813- [
814- (None , None ),
815- (DatasetView .DATASET_VIEW_UNSPECIFIED , "DATASET_VIEW_UNSPECIFIED" ),
816- (DatasetView .METADATA , "METADATA" ),
817- (DatasetView .ACL , "ACL" ),
818- (DatasetView .FULL , "FULL" ),
819- ],
820- )
821- def test_get_dataset_with_dataset_view (
822- self , dataset_view_arg , expected_param_value
823- ):
811+ def test_get_dataset_with_dataset_view (self ):
824812 path = "projects/%s/datasets/%s" % (self .PROJECT , self .DS_ID )
825813 creds = _make_credentials ()
826814 http = object ()
@@ -829,34 +817,47 @@ def test_get_dataset_with_dataset_view(
829817 "id" : "%s:%s" % (self .PROJECT , self .DS_ID ),
830818 "datasetReference" : {"projectId" : self .PROJECT , "datasetId" : self .DS_ID },
831819 }
832- conn = client ._connection = make_connection (resource )
833820 dataset_ref = DatasetReference (self .PROJECT , self .DS_ID )
834821
835- dataset = client .get_dataset (dataset_ref , dataset_view = dataset_view_arg )
822+ test_cases = [
823+ (None , None ),
824+ (DatasetView .DATASET_VIEW_UNSPECIFIED , "DATASET_VIEW_UNSPECIFIED" ),
825+ (DatasetView .METADATA , "METADATA" ),
826+ (DatasetView .ACL , "ACL" ),
827+ (DatasetView .FULL , "FULL" ),
828+ ]
829+
830+ for dataset_view_arg , expected_param_value in test_cases :
831+ with self .subTest (
832+ dataset_view_arg = dataset_view_arg ,
833+ expected_param_value = expected_param_value ,
834+ ):
835+ # Re-initialize the connection mock for each sub-test to reset side_effect
836+ conn = client ._connection = make_connection (resource )
836837
837- self .assertEqual (dataset .dataset_id , self .DS_ID )
838- expected_query_params = {}
839- if expected_param_value is not None :
840- expected_query_params ["view" ] = expected_param_value
838+ dataset = client .get_dataset (dataset_ref , dataset_view = dataset_view_arg )
841839
842- conn . api_request . assert_called_once_with (
843- method = "GET" ,
844- path = "/%s" % path ,
845- timeout = DEFAULT_TIMEOUT ,
846- query_params = expected_query_params if expected_query_params else None ,
847- )
840+ self . assertEqual ( dataset . dataset_id , self . DS_ID )
841+
842+ if expected_param_value :
843+ expected_query_params = { "view" : expected_param_value }
844+ else :
845+ expected_query_params = {}
848846
849- @pytest .mark .parametrize (
850- "invalid_view_value" ,
851- [
847+ conn .api_request .assert_called_once_with (
848+ method = "GET" ,
849+ path = "/%s" % path ,
850+ timeout = DEFAULT_TIMEOUT ,
851+ query_params = expected_query_params if expected_query_params else {},
852+ )
853+
854+ def test_get_dataset_with_invalid_dataset_view (self ):
855+ invalid_view_values = [
852856 "INVALID_STRING" ,
853857 123 ,
854858 123.45 ,
855859 object (),
856- ],
857- )
858- def test_get_dataset_with_invalid_dataset_view (self , invalid_view_value ):
859- path = "projects/%s/datasets/%s" % (self .PROJECT , self .DS_ID )
860+ ]
860861 creds = _make_credentials ()
861862 http = object ()
862863 client = self ._make_one (project = self .PROJECT , credentials = creds , _http = http )
@@ -867,8 +868,11 @@ def test_get_dataset_with_invalid_dataset_view(self, invalid_view_value):
867868 conn = client ._connection = make_connection (resource )
868869 dataset_ref = DatasetReference (self .PROJECT , self .DS_ID )
869870
870- with pytest .raises (AttributeError ):
871- client .get_dataset (dataset_ref , dataset_view = invalid_view_value )
871+ for invalid_view_value in invalid_view_values :
872+ with self .subTest (invalid_view_value = invalid_view_value ):
873+ conn .api_request .reset_mock () # Reset mock for each sub-test
874+ with self .assertRaises (AttributeError ):
875+ client .get_dataset (dataset_ref , dataset_view = invalid_view_value )
872876
873877 def test_ensure_bqstorage_client_creating_new_instance (self ):
874878 bigquery_storage = pytest .importorskip ("google.cloud.bigquery_storage" )
0 commit comments