@@ -681,7 +681,6 @@ def test_from_api_repr_none(self):
681681 self .assertEqual (None , self ._get_target_class ().from_api_repr (None ))
682682
683683
684- # BEGIN PYTEST BASED SCHEMA TESTS ====================
685684@pytest .fixture
686685def basic_resource ():
687686 return {
@@ -826,6 +825,7 @@ def test_build_schema_resource(self, fields, expected_resource):
826825
827826class TestToSchemaFields : # Test class for _to_schema_fields
828827 def test_invalid_type (self ):
828+ """Invalid list of tuples instead of list of mappings"""
829829 schema = [
830830 ("full_name" , "STRING" , "REQUIRED" ),
831831 ("address" , "STRING" , "REQUIRED" ),
@@ -846,7 +846,7 @@ def test_schema_fields_sequence(self):
846846 def test_invalid_mapping_representation (self ):
847847 schema = [
848848 {"name" : "full_name" , "type" : "STRING" , "mode" : "REQUIRED" },
849- {"name" : "address" , "typeooo " : "STRING" , "mode" : "REQUIRED" },
849+ {"name" : "address" , "invalid_key " : "STRING" , "mode" : "REQUIRED" },
850850 ]
851851 with pytest .raises (Exception ): # Or a more specific exception if known
852852 _to_schema_fields (schema )
@@ -889,7 +889,7 @@ def test_valid_mapping_representation(self, schema, expected_schema):
889889
890890 def test_valid_schema_object (self ):
891891 schema = Schema (
892- fields = [SchemaField ("name" , "STRING" )],
892+ fields = [SchemaField ("name" , "STRING" , description = None , policy_tags = None )],
893893 foreign_type_info = "TestInfo" ,
894894 )
895895 result = _to_schema_fields (schema )
@@ -900,7 +900,6 @@ def test_valid_schema_object(self):
900900 assert result .to_api_repr () == expected .to_api_repr ()
901901
902902
903- # Testing the new Schema Class =================
904903class TestSchemaObject : # New test class for Schema object interactions
905904 def test_schema_object_field_access (self ):
906905 schema = Schema (
@@ -909,9 +908,10 @@ def test_schema_object_field_access(self):
909908 SchemaField ("age" , "INTEGER" ),
910909 ]
911910 )
911+
912912 assert len (schema ) == 2
913- assert schema [0 ]. name == "name" # Access fields using indexing
914- assert schema [1 ]. field_type == "INTEGER"
913+ assert schema [0 ][ " name" ] == "name" # Access fields using indexing
914+ assert schema [1 ][ "type" ] == "INTEGER"
915915
916916 def test_schema_object_foreign_type_info (self ):
917917 schema = Schema (foreign_type_info = "External" )
@@ -930,7 +930,7 @@ def test_str(self):
930930 )
931931 assert (
932932 str (schema )
933- == "Schema([SchemaField( 'name', 'STRING ', 'NULLABLE', None, None, (), None) ], TestInfo)"
933+ == "Schema([{ 'name': 'name ', 'mode': ' NULLABLE', 'type': 'STRING'} ], TestInfo)"
934934 )
935935
936936 @pytest .mark .parametrize (
@@ -941,12 +941,12 @@ def test_str(self):
941941 fields = [SchemaField ("name" , "STRING" )],
942942 foreign_type_info = "TestInfo" ,
943943 ),
944- "Schema([SchemaField( 'name', 'STRING ', 'NULLABLE', None, None, (), None) ], 'TestInfo')" ,
944+ "Schema([{ 'name': 'name ', 'mode': ' NULLABLE', 'type': 'STRING'} ], 'TestInfo')" ,
945945 id = "repr with foreign type info" ,
946946 ),
947947 pytest .param (
948948 Schema (fields = [SchemaField ("name" , "STRING" )]),
949- "Schema([SchemaField( 'name', 'STRING ', 'NULLABLE', None, None, (), None) ], None)" ,
949+ "Schema([{ 'name': 'name ', 'mode': ' NULLABLE', 'type': 'STRING'} ], None)" ,
950950 id = "repr without foreign type info" ,
951951 ),
952952 ],
@@ -958,8 +958,7 @@ def test_schema_iteration(self):
958958 schema = Schema (
959959 fields = [SchemaField ("name" , "STRING" ), SchemaField ("age" , "INTEGER" )]
960960 )
961-
962- field_names = [field .name for field in schema ]
961+ field_names = [field ["name" ] for field in schema ]
963962 assert field_names == ["name" , "age" ]
964963
965964 def test_schema_object_mutability (self ): # Tests __setitem__ and __delitem__
@@ -1002,19 +1001,15 @@ def test_schema_extend(self):
10021001 foreign_type_info = "TestInfo" ,
10031002 ),
10041003 {
1005- "_fields" : [
1006- SchemaField ("name" , "STRING" , "NULLABLE" , None , None , (), None )
1007- ],
1004+ "fields" : [{"name" : "name" , "mode" : "NULLABLE" , "type" : "STRING" }],
10081005 "foreignTypeInfo" : "TestInfo" ,
10091006 },
10101007 id = "repr with foreign type info" ,
10111008 ),
10121009 pytest .param (
10131010 Schema (fields = [SchemaField ("name" , "STRING" )]),
10141011 {
1015- "_fields" : [
1016- SchemaField ("name" , "STRING" , "NULLABLE" , None , None , (), None )
1017- ],
1012+ "fields" : [{"name" : "name" , "mode" : "NULLABLE" , "type" : "STRING" }],
10181013 "foreignTypeInfo" : None ,
10191014 },
10201015 id = "repr without foreign type info" ,
@@ -1029,25 +1024,35 @@ def test_to_api_repr(self, schema, expected_api_repr):
10291024 [
10301025 pytest .param (
10311026 {
1032- "_fields " : [
1027+ "fields " : [
10331028 SchemaField ("name" , "STRING" , "NULLABLE" , None , None , (), None )
10341029 ],
10351030 "foreignTypeInfo" : "TestInfo" ,
10361031 },
10371032 Schema (
1038- fields = [SchemaField ("name" , "STRING" )],
1033+ fields = [
1034+ SchemaField (
1035+ "name" , "STRING" , description = None , policy_tags = None
1036+ )
1037+ ],
10391038 foreign_type_info = "TestInfo" ,
10401039 ),
10411040 id = "repr with foreign type info" ,
10421041 ),
10431042 pytest .param (
10441043 {
1045- "_fields " : [
1044+ "fields " : [
10461045 SchemaField ("name" , "STRING" , "NULLABLE" , None , None , (), None )
10471046 ],
10481047 "foreignTypeInfo" : None ,
10491048 },
1050- Schema (fields = [SchemaField ("name" , "STRING" )]),
1049+ Schema (
1050+ fields = [
1051+ SchemaField (
1052+ "name" , "STRING" , description = None , policy_tags = None
1053+ )
1054+ ]
1055+ ),
10511056 id = "repr without foreign type info" ,
10521057 ),
10531058 ],
@@ -1059,13 +1064,11 @@ def test_from_api_repr(self, api_repr, expected):
10591064 THEN it will have the same representation a Schema object created
10601065 directly and displayed as a dict.
10611066 """
1067+
10621068 result = Schema .from_api_repr (api_repr )
10631069 assert result .to_api_repr () == expected .to_api_repr ()
10641070
10651071
1066- # END PYTEST BASED SCHEMA TESTS ====================
1067-
1068-
10691072class TestPolicyTags (unittest .TestCase ):
10701073 @staticmethod
10711074 def _get_target_class ():
0 commit comments