11import pytest
22
3+ from openapi_core .deserializing .exceptions import DeserializeError
4+ from openapi_core .deserializing .media_types .factories import (
5+ MediaTypeDeserializersFactory ,
6+ )
37from openapi_core .deserializing .parameters .factories import (
4- ParameterDeserializersFactory ,
5- )
8+ ParameterDeserializersFactory ,
9+ )
610from openapi_core .deserializing .parameters .exceptions import (
711 EmptyParameterValue ,
812)
13+ from openapi_core .schema .media_types .models import MediaType
914from openapi_core .schema .parameters .models import Parameter
1015
1116
12- @pytest .fixture
13- def deserializer_factory ():
14- def create_deserializer (param ):
15- return ParameterDeserializersFactory ().create (param )
16- return create_deserializer
17-
18-
1917class TestParameterDeserialise (object ):
2018
19+ @pytest .fixture
20+ def deserializer_factory (self ):
21+ def create_deserializer (param ):
22+ return ParameterDeserializersFactory ().create (param )
23+ return create_deserializer
24+
2125 def test_deprecated (self , deserializer_factory ):
2226 param = Parameter ('param' , 'query' , deprecated = True )
2327 value = 'test'
@@ -41,3 +45,27 @@ def test_query_valid(self, deserializer_factory):
4145 result = deserializer_factory (param )(value )
4246
4347 assert result == value
48+
49+
50+ class TestMediaTypeDeserialise (object ):
51+
52+ @pytest .fixture
53+ def deserializer_factory (self ):
54+ def create_deserializer (media_type ):
55+ return MediaTypeDeserializersFactory ().create (media_type )
56+ return create_deserializer
57+
58+ def test_empty (self , deserializer_factory ):
59+ media_type = MediaType ('application/json' )
60+ value = ''
61+
62+ with pytest .raises (DeserializeError ):
63+ deserializer_factory (media_type )(value )
64+
65+ def test_no_schema_deserialised (self , deserializer_factory ):
66+ media_type = MediaType ('application/json' )
67+ value = "{}"
68+
69+ result = deserializer_factory (media_type )(value )
70+
71+ assert result == {}
0 commit comments