1
- from email .mime .multipart import MIMEMultipart
2
- from email .mime .nonmultipart import MIMENonMultipart
3
-
4
1
import pytest
5
2
3
+ from six import b , u
4
+
6
5
from openapi_core .deserializing .exceptions import DeserializeError
7
6
from openapi_core .deserializing .media_types .factories import (
8
7
MediaTypeDeserializersFactory ,
9
8
)
10
9
from openapi_core .schema .media_types .models import MediaType
11
10
12
11
13
- class MIMEFormdata (MIMENonMultipart ):
14
- def __init__ (self , keyname , * args , ** kwargs ):
15
- super (MIMEFormdata , self ).__init__ (* args , ** kwargs )
16
- self .add_header (
17
- "Content-Disposition" , "form-data; name=\" %s\" " % keyname )
18
-
19
-
20
- def encode_multipart_formdata (fields ):
21
- m = MIMEMultipart ("form-data" )
22
-
23
- for field , value in fields .items ():
24
- data = MIMEFormdata (field , "text" , "plain" )
25
- data .set_payload (value )
26
- m .attach (data )
27
-
28
- return m
29
-
30
-
31
12
class TestMediaTypeDeserializer (object ):
32
13
33
14
@pytest .fixture
@@ -68,7 +49,7 @@ def test_urlencoded_form_simple(self, deserializer_factory):
68
49
69
50
assert result == {'param1' : 'test' }
70
51
71
- @pytest .mark .parametrize ('value' , [b'' , '' ])
52
+ @pytest .mark .parametrize ('value' , [b ( '' ), u ( '' ) ])
72
53
def test_data_form_empty (self , deserializer_factory , value ):
73
54
media_type = MediaType ('multipart/form-data' )
74
55
@@ -78,12 +59,19 @@ def test_data_form_empty(self, deserializer_factory, value):
78
59
79
60
def test_data_form_simple (self , deserializer_factory ):
80
61
media_type = MediaType ('multipart/form-data' )
81
- formdata = encode_multipart_formdata ({'param1' : 'test' })
82
- value = str (formdata )
62
+ value = b (
63
+ 'Content-Type: multipart/form-data; boundary="'
64
+ '===============2872712225071193122=="\n '
65
+ 'MIME-Version: 1.0\n \n '
66
+ '--===============2872712225071193122==\n '
67
+ 'Content-Type: text/plain\n MIME-Version: 1.0\n '
68
+ 'Content-Disposition: form-data; name="param1"\n \n test\n '
69
+ '--===============2872712225071193122==--\n '
70
+ )
83
71
84
72
result = deserializer_factory (media_type )(value )
85
73
86
- assert result == {'param1' : b'test' }
74
+ assert result == {'param1' : b ( 'test' ) }
87
75
88
76
def test_custom_simple (self , deserializer_factory ):
89
77
custom_mimetype = 'application/custom'
0 commit comments