1818import unittest
1919
2020from google .cloud .bigquery import external_config
21+ from google .cloud .bigquery .external_config import (
22+ ExternalCatalogDatasetOptions ,
23+ ExternalCatalogTableOptions
24+ )
2125from google .cloud .bigquery import schema
2226
2327import pytest
@@ -905,41 +909,41 @@ def _get_target_class():
905909 def _make_one (self , * args , ** kw ):
906910 return self ._get_target_class ()(* args , ** kw )
907911
908- def test_ctor_defaults (self ):
909- """Test ExternalCatalogDatasetOptions constructor with default values."""
910- instance = self ._make_one ()
911-
912- assert instance ._properties ["defaultStorageLocationUri" ] is None
913- assert instance ._properties ["parameters" ] is None
914912
915- def test_ctor_explicit (
913+ @pytest .mark .parametrize (
914+ "default_storage_location_uri,parameters" ,
915+ [
916+ ("gs://test-bucket/test-path" , {"key" : "value" }), # set all params
917+ ("gs://test-bucket/test-path" , None ), # set only one parameter at a time
918+ (None , {"key" : "value" }),
919+ (None , None ), # use default parameters
920+ ],
921+ )
922+ def test_ctor_initialization (
916923 self ,
924+ default_storage_location_uri ,
925+ parameters ,
917926 ):
918927 """Test ExternalCatalogDatasetOptions constructor with explicit values."""
919-
920- default_storage_location_uri = "gs://test-bucket/test-path"
921- parameters = {"key" : "value" }
922-
923928 instance = self ._make_one (
924929 default_storage_location_uri = default_storage_location_uri ,
925930 parameters = parameters ,
926931 )
927932
928- assert (
929- instance ._properties ["defaultStorageLocationUri" ]
930- == default_storage_location_uri
931- )
932- assert instance ._properties ["parameters" ] == parameters
933+ assert instance ._properties == {
934+ "defaultStorageLocationUri" : default_storage_location_uri ,
935+ "parameters" : parameters ,
936+ }
933937
934938 def test_ctor_invalid_input (self ):
935939 """Test ExternalCatalogDatasetOptions constructor with invalid input."""
936940 with pytest .raises (TypeError ) as e :
937941 self ._make_one (default_storage_location_uri = 123 )
938- assert "Pass" in str (e .value )
942+ assert "Pass " in str (e .value )
939943
940944 with pytest .raises (TypeError ) as e :
941945 self ._make_one (parameters = 123 )
942- assert "Pass" in str (e .value )
946+ assert "Pass " in str (e .value )
943947
944948 def test_to_api_repr (self ):
945949 """Test ExternalCatalogDatasetOptions.to_api_repr method."""
@@ -961,14 +965,15 @@ def test_from_api_repr(self):
961965 "defaultStorageLocationUri" : "gs://test-bucket/test-path" ,
962966 "parameters" : {"key" : "value" },
963967 }
964- instance .from_api_repr (resource )
968+ result = instance .from_api_repr (resource )
969+
970+ assert isinstance (result , ExternalCatalogDatasetOptions )
971+ assert result ._properties == resource
965972
966973
967974class TestExternalCatalogTableOptions :
968975 @staticmethod
969976 def _get_target_class ():
970- from google .cloud .bigquery .external_config import ExternalCatalogTableOptions
971-
972977 return ExternalCatalogTableOptions
973978
974979 def _make_one (self , * args , ** kw ):
@@ -996,22 +1001,6 @@ def test_ctor_initialization(self, connection_id, parameters, storage_descriptor
9961001 "storageDescriptor" : storage_descriptor ,
9971002 }
9981003
999- def test_to_api_repr (self ):
1000- instance = self ._make_one ()
1001- instance ._properties = {
1002- "connectionId" : "connection123" ,
1003- "parameters" : {"key" : "value" },
1004- "storageDescriptor" : "placeholder" ,
1005- }
1006-
1007- resource = instance .to_api_repr ()
1008-
1009- assert resource == {
1010- "connectionId" : "connection123" ,
1011- "parameters" : {"key" : "value" },
1012- "storageDescriptor" : "placeholder" ,
1013- }
1014-
10151004 @pytest .mark .parametrize (
10161005 "connection_id, parameters, storage_descriptor" ,
10171006 [
@@ -1048,7 +1037,24 @@ def test_ctor_invalid_input(
10481037 storage_descriptor = storage_descriptor ,
10491038 )
10501039
1051- assert "Pass" in str (e .value )
1040+ assert "Pass " in str (e .value )
1041+
1042+ def test_to_api_repr (self ):
1043+ instance = self ._make_one ()
1044+ instance ._properties = {
1045+ "connectionId" : "connection123" ,
1046+ "parameters" : {"key" : "value" },
1047+ "storageDescriptor" : "placeholder" ,
1048+ }
1049+
1050+ resource = instance .to_api_repr ()
1051+
1052+ assert resource == {
1053+ "connectionId" : "connection123" ,
1054+ "parameters" : {"key" : "value" },
1055+ "storageDescriptor" : "placeholder" ,
1056+ }
1057+
10521058
10531059 def test_from_api_repr (self ):
10541060 instance = self ._make_one ()
@@ -1057,4 +1063,8 @@ def test_from_api_repr(self):
10571063 "parameters" : {"key" : "value" },
10581064 "storageDescriptor" : "placeholder" ,
10591065 }
1060- instance .from_api_repr (resource )
1066+ result = instance .from_api_repr (resource )
1067+
1068+ assert isinstance (result , ExternalCatalogTableOptions )
1069+ assert result ._properties == resource
1070+
0 commit comments