@@ -851,21 +851,8 @@ def test_schema_fields_sequence(self):
851851
852852 def test_unknown_properties (self ):
853853 schema = [
854- {
855- "name" : "full_name" ,
856- "type" : "STRING" ,
857- "mode" : "REQUIRED" ,
858- "someNewProperty" : "test-value" ,
859- },
860- {
861- "name" : "age" ,
862- # Note: This type should be included, too. Avoid client-side
863- # validation, as it could prevent backwards-compatible
864- # evolution of the server-side behavior.
865- "typo" : "INTEGER" ,
866- "mode" : "REQUIRED" ,
867- "anotherNewProperty" : "another-test" ,
868- },
854+ {"name" : "full_name" , "type" : "STRING" , "mode" : "REQUIRED" },
855+ {"name" : "address" , "invalid_key" : "STRING" , "mode" : "REQUIRED" },
869856 ]
870857 with pytest .raises (Exception ): # Or a more specific exception if known
871858 _to_schema_fields (schema )
@@ -908,7 +895,7 @@ def test_valid_mapping_representation(self, schema, expected_schema):
908895
909896 def test_valid_schema_object (self ):
910897 schema = Schema (
911- fields = [SchemaField ("name" , "STRING" )],
898+ fields = [SchemaField ("name" , "STRING" , description = None , policy_tags = None )],
912899 foreign_type_info = "TestInfo" ,
913900 )
914901 result = _to_schema_fields (schema )
@@ -919,7 +906,6 @@ def test_valid_schema_object(self):
919906 assert result .to_api_repr () == expected .to_api_repr ()
920907
921908
922- # Testing the new Schema Class =================
923909class TestSchemaObject : # New test class for Schema object interactions
924910 def test_schema_object_field_access (self ):
925911 schema = Schema (
@@ -928,9 +914,10 @@ def test_schema_object_field_access(self):
928914 SchemaField ("age" , "INTEGER" ),
929915 ]
930916 )
917+
931918 assert len (schema ) == 2
932- assert schema [0 ]. name == "name" # Access fields using indexing
933- assert schema [1 ]. field_type == "INTEGER"
919+ assert schema [0 ][ " name" ] == "name" # Access fields using indexing
920+ assert schema [1 ][ "type" ] == "INTEGER"
934921
935922 def test_schema_object_foreign_type_info (self ):
936923 schema = Schema (foreign_type_info = "External" )
@@ -949,7 +936,7 @@ def test_str(self):
949936 )
950937 assert (
951938 str (schema )
952- == "Schema([SchemaField( 'name', 'STRING ', 'NULLABLE', None, None, (), None) ], TestInfo)"
939+ == "Schema([{ 'name': 'name ', 'mode': ' NULLABLE', 'type': 'STRING'} ], TestInfo)"
953940 )
954941
955942 @pytest .mark .parametrize (
@@ -960,12 +947,12 @@ def test_str(self):
960947 fields = [SchemaField ("name" , "STRING" )],
961948 foreign_type_info = "TestInfo" ,
962949 ),
963- "Schema([SchemaField( 'name', 'STRING ', 'NULLABLE', None, None, (), None) ], 'TestInfo')" ,
950+ "Schema([{ 'name': 'name ', 'mode': ' NULLABLE', 'type': 'STRING'} ], 'TestInfo')" ,
964951 id = "repr with foreign type info" ,
965952 ),
966953 pytest .param (
967954 Schema (fields = [SchemaField ("name" , "STRING" )]),
968- "Schema([SchemaField( 'name', 'STRING ', 'NULLABLE', None, None, (), None) ], None)" ,
955+ "Schema([{ 'name': 'name ', 'mode': ' NULLABLE', 'type': 'STRING'} ], None)" ,
969956 id = "repr without foreign type info" ,
970957 ),
971958 ],
@@ -977,8 +964,7 @@ def test_schema_iteration(self):
977964 schema = Schema (
978965 fields = [SchemaField ("name" , "STRING" ), SchemaField ("age" , "INTEGER" )]
979966 )
980-
981- field_names = [field .name for field in schema ]
967+ field_names = [field ["name" ] for field in schema ]
982968 assert field_names == ["name" , "age" ]
983969
984970 def test_schema_object_mutability (self ): # Tests __setitem__ and __delitem__
@@ -1021,19 +1007,15 @@ def test_schema_extend(self):
10211007 foreign_type_info = "TestInfo" ,
10221008 ),
10231009 {
1024- "_fields" : [
1025- SchemaField ("name" , "STRING" , "NULLABLE" , None , None , (), None )
1026- ],
1010+ "fields" : [{"name" : "name" , "mode" : "NULLABLE" , "type" : "STRING" }],
10271011 "foreignTypeInfo" : "TestInfo" ,
10281012 },
10291013 id = "repr with foreign type info" ,
10301014 ),
10311015 pytest .param (
10321016 Schema (fields = [SchemaField ("name" , "STRING" )]),
10331017 {
1034- "_fields" : [
1035- SchemaField ("name" , "STRING" , "NULLABLE" , None , None , (), None )
1036- ],
1018+ "fields" : [{"name" : "name" , "mode" : "NULLABLE" , "type" : "STRING" }],
10371019 "foreignTypeInfo" : None ,
10381020 },
10391021 id = "repr without foreign type info" ,
@@ -1048,25 +1030,35 @@ def test_to_api_repr(self, schema, expected_api_repr):
10481030 [
10491031 pytest .param (
10501032 {
1051- "_fields " : [
1033+ "fields " : [
10521034 SchemaField ("name" , "STRING" , "NULLABLE" , None , None , (), None )
10531035 ],
10541036 "foreignTypeInfo" : "TestInfo" ,
10551037 },
10561038 Schema (
1057- fields = [SchemaField ("name" , "STRING" )],
1039+ fields = [
1040+ SchemaField (
1041+ "name" , "STRING" , description = None , policy_tags = None
1042+ )
1043+ ],
10581044 foreign_type_info = "TestInfo" ,
10591045 ),
10601046 id = "repr with foreign type info" ,
10611047 ),
10621048 pytest .param (
10631049 {
1064- "_fields " : [
1050+ "fields " : [
10651051 SchemaField ("name" , "STRING" , "NULLABLE" , None , None , (), None )
10661052 ],
10671053 "foreignTypeInfo" : None ,
10681054 },
1069- Schema (fields = [SchemaField ("name" , "STRING" )]),
1055+ Schema (
1056+ fields = [
1057+ SchemaField (
1058+ "name" , "STRING" , description = None , policy_tags = None
1059+ )
1060+ ]
1061+ ),
10701062 id = "repr without foreign type info" ,
10711063 ),
10721064 ],
@@ -1078,13 +1070,11 @@ def test_from_api_repr(self, api_repr, expected):
10781070 THEN it will have the same representation a Schema object created
10791071 directly and displayed as a dict.
10801072 """
1073+
10811074 result = Schema .from_api_repr (api_repr )
10821075 assert result .to_api_repr () == expected .to_api_repr ()
10831076
10841077
1085- # END PYTEST BASED SCHEMA TESTS ====================
1086-
1087-
10881078class TestPolicyTags (unittest .TestCase ):
10891079 @staticmethod
10901080 def _get_target_class ():
0 commit comments