@@ -240,6 +240,30 @@ def test_basic_type_formats(
240240
241241 assert result == unmarshalled
242242
243+ @pytest .mark .parametrize (
244+ "type,format,value" ,
245+ [
246+ ("string" , "float" , "test" ),
247+ ("string" , "double" , "test" ),
248+ ("number" , "date" , 3 ),
249+ ("number" , "date-time" , 3 ),
250+ ("number" , "uuid" , 3 ),
251+ ],
252+ )
253+ def test_basic_type_formats_ignored (
254+ self , unmarshallers_factory , type , format , value
255+ ):
256+ schema = {
257+ "type" : type ,
258+ "format" : format ,
259+ }
260+ spec = Spec .from_dict (schema , validator = None )
261+ unmarshaller = unmarshallers_factory .create (spec )
262+
263+ result = unmarshaller .unmarshal (value )
264+
265+ assert result == value
266+
243267 @pytest .mark .parametrize (
244268 "type,format,value" ,
245269 [
@@ -268,7 +292,8 @@ def test_basic_type_formats_invalid(
268292 @pytest .mark .parametrize (
269293 "value,expected" ,
270294 [
271- ("dGVzdA==" , "test" ),
295+ ("dGVzdA==" , b"test" ),
296+ ("test" , b"\xb5 \xeb -" ),
272297 ],
273298 )
274299 def test_string_byte (self , unmarshallers_factory , value , expected ):
@@ -374,23 +399,17 @@ def test_string_uuid_invalid(self, unmarshallers_factory):
374399 assert len (exc_info .value .schema_errors ) == 1
375400 assert f"is not a 'uuid'" in exc_info .value .schema_errors [0 ].message
376401
377- @pytest .mark .xfail (
378- reason = (
379- "Formats raise error for other types. "
380- "See https://github.com/python-openapi/openapi-schema-validator/issues/66"
381- )
382- )
383402 @pytest .mark .parametrize (
384403 "type,format,value,expected" ,
385404 [
386405 ("string" , "float" , "test" , "test" ),
387406 ("string" , "double" , "test" , "test" ),
388- ("string " , "byte" , "test" , "test" ),
389- ("integer" , "date" , "10" , 10 ),
390- ("integer" , "date-time" , "10" , 10 ),
407+ ("integer " , "byte" , 10 , 10 ),
408+ ("integer" , "date" , 10 , 10 ),
409+ ("integer" , "date-time" , 10 , 10 ),
391410 ("string" , "int32" , "test" , "test" ),
392411 ("string" , "int64" , "test" , "test" ),
393- ("integer" , "password" , "10" , 10 ),
412+ ("integer" , "password" , 10 , 10 ),
394413 ],
395414 )
396415 def test_formats_ignored (
@@ -1679,7 +1698,7 @@ def test_not_nullable(self, unmarshallers_factory, type):
16791698 @pytest .mark .parametrize (
16801699 "type,format,value,unmarshalled" ,
16811700 [
1682- ("string" , "byte" , "dGVzdA==" , "test" ),
1701+ ("string" , "byte" , "dGVzdA==" , b "test" ),
16831702 ("string" , "binary" , b"test" , b"test" ),
16841703 ],
16851704 )
@@ -1728,7 +1747,8 @@ def test_basic_type_oas30_formats_invalid(
17281747 reason = (
17291748 "OAS 3.0 string type checker allows byte. "
17301749 "See https://github.com/python-openapi/openapi-schema-validator/issues/64"
1731- )
1750+ ),
1751+ strict = True ,
17321752 )
17331753 def test_string_format_binary_invalid (self , unmarshallers_factory ):
17341754 schema = {
@@ -1748,7 +1768,8 @@ def test_string_format_binary_invalid(self, unmarshallers_factory):
17481768 reason = (
17491769 "Rraises TypeError not SchemaError. "
17501770 "See ttps://github.com/python-openapi/openapi-schema-validator/issues/65"
1751- )
1771+ ),
1772+ strict = True ,
17521773 )
17531774 @pytest .mark .parametrize (
17541775 "types,value" ,
@@ -1928,7 +1949,8 @@ def unmarshallers_factory(self):
19281949 reason = (
19291950 "OpenAPI 3.1 schema validator uses OpenAPI 3.0 format checker."
19301951 "See https://github.com/python-openapi/openapi-core/issues/506"
1931- )
1952+ ),
1953+ strict = True ,
19321954 )
19331955 @pytest .mark .parametrize (
19341956 "type,format" ,
0 commit comments