1- import asyncio
21from contextlib import asynccontextmanager
32from io import BytesIO
43from typing import List , Tuple , Union
1110from starlette .datastructures import FormData , Headers , UploadFile
1211from typing_extensions import Annotated
1312
14- # todo use pytest-asyncio
15- await_ = asyncio .run
16-
1713
1814class SimpleForm (BaseModel ):
1915 name : str
@@ -62,23 +58,23 @@ def test_simple_form_fields():
6258 }
6359
6460
65- def test_simple_form_submit ():
61+ async def test_simple_form_submit ():
6662 form_dep = fastui_form (SimpleForm )
6763
6864 request = FakeRequest ([('name' , 'bar' ), ('size' , '123' )])
6965
70- m = await_ ( form_dep .dependency (request ) )
66+ m = await form_dep .dependency (request )
7167 assert isinstance (m , SimpleForm )
7268 assert m .model_dump () == {'name' : 'bar' , 'size' : 123 }
7369
7470
75- def test_simple_form_submit_repeat ():
71+ async def test_simple_form_submit_repeat ():
7672 form_dep = fastui_form (SimpleForm )
7773
7874 request = FakeRequest ([('name' , 'bar' ), ('size' , '123' ), ('size' , '456' )])
7975
8076 with pytest .raises (HTTPException ) as exc_info :
81- await_ ( form_dep .dependency (request ) )
77+ await form_dep .dependency (request )
8278
8379 # insert_assert(exc_info.value.detail)
8480 assert exc_info .value .detail == {
@@ -124,13 +120,12 @@ def test_w_nested_form_fields():
124120 }
125121
126122
127- def test_w_nested_form_submit ():
123+ async def test_w_nested_form_submit ():
128124 form_dep = fastui_form (FormWithNested )
129125
130126 request = FakeRequest ([('name' , 'bar' ), ('nested.x' , '123' )])
131127
132- # todo use pytest-asyncio
133- m = await_ (form_dep .dependency (request ))
128+ m = await form_dep .dependency (request )
134129 assert isinstance (m , FormWithNested )
135130 assert m .model_dump () == {'name' : 'bar' , 'nested' : {'x' : 123 }}
136131
@@ -160,21 +155,21 @@ def test_file():
160155 }
161156
162157
163- def test_file_submit ():
158+ async def test_file_submit ():
164159 file = UploadFile (BytesIO (b'foobar' ), size = 6 , filename = 'testing.txt' )
165160 request = FakeRequest ([('profile_pic' , file )])
166161
167- m = await_ ( fastui_form (FormWithFile ).dependency (request ) )
162+ m = await fastui_form (FormWithFile ).dependency (request )
168163 assert m .model_dump () == {'profile_pic' : file }
169164
170165
171- def test_file_submit_repeat ():
166+ async def test_file_submit_repeat ():
172167 file1 = UploadFile (BytesIO (b'foobar' ), size = 6 , filename = 'testing1.txt' )
173168 file2 = UploadFile (BytesIO (b'foobar' ), size = 6 , filename = 'testing2.txt' )
174169 request = FakeRequest ([('profile_pic' , file1 ), ('profile_pic' , file2 )])
175170
176171 with pytest .raises (HTTPException ) as exc_info :
177- await_ ( fastui_form (FormWithFile ).dependency (request ) )
172+ await fastui_form (FormWithFile ).dependency (request )
178173
179174 # insert_assert(exc_info.value.detail)
180175 assert exc_info .value .detail == {
@@ -208,30 +203,30 @@ def test_file_constrained():
208203 }
209204
210205
211- def test_file_constrained_submit ():
206+ async def test_file_constrained_submit ():
212207 headers = Headers ({'content-type' : 'image/png' })
213208 file = UploadFile (BytesIO (b'foobar' ), size = 16_000 , headers = headers )
214209 request = FakeRequest ([('profile_pic' , file )])
215210
216- m = await_ ( fastui_form (FormWithFileConstraint ).dependency (request ) )
211+ m = await fastui_form (FormWithFileConstraint ).dependency (request )
217212 assert m .model_dump () == {'profile_pic' : file }
218213
219214
220- def test_file_constrained_submit_filename ():
215+ async def test_file_constrained_submit_filename ():
221216 file = UploadFile (BytesIO (b'foobar' ), size = 16_000 , filename = 'image.png' )
222217 request = FakeRequest ([('profile_pic' , file )])
223218
224- m = await_ ( fastui_form (FormWithFileConstraint ).dependency (request ) )
219+ m = await fastui_form (FormWithFileConstraint ).dependency (request )
225220 assert m .model_dump () == {'profile_pic' : file }
226221
227222
228- def test_file_constrained_submit_too_big ():
223+ async def test_file_constrained_submit_too_big ():
229224 headers = Headers ({'content-type' : 'image/png' })
230225 file = UploadFile (BytesIO (b'foobar' ), size = 16_001 , filename = 'image.png' , headers = headers )
231226 request = FakeRequest ([('profile_pic' , file )])
232227
233228 with pytest .raises (HTTPException ) as exc_info :
234- await_ ( fastui_form (FormWithFileConstraint ).dependency (request ) )
229+ await fastui_form (FormWithFileConstraint ).dependency (request )
235230
236231 # insert_assert(exc_info.value.detail)
237232 assert exc_info .value .detail == {
@@ -245,13 +240,13 @@ def test_file_constrained_submit_too_big():
245240 }
246241
247242
248- def test_file_constrained_submit_wrong_type ():
243+ async def test_file_constrained_submit_wrong_type ():
249244 headers = Headers ({'content-type' : 'text/plain' })
250245 file = UploadFile (BytesIO (b'foobar' ), size = 16 , filename = 'testing.txt' , headers = headers )
251246 request = FakeRequest ([('profile_pic' , file )])
252247
253248 with pytest .raises (HTTPException ) as exc_info :
254- await_ ( fastui_form (FormWithFileConstraint ).dependency (request ) )
249+ await fastui_form (FormWithFileConstraint ).dependency (request )
255250
256251 # insert_assert(exc_info.value.detail)
257252 assert exc_info .value .detail == {
@@ -293,18 +288,18 @@ def test_multiple_files():
293288 }
294289
295290
296- def test_multiple_files_single ():
291+ async def test_multiple_files_single ():
297292 file = UploadFile (BytesIO (b'foobar' ), size = 16_000 , filename = 'image.png' )
298293 request = FakeRequest ([('files' , file )])
299294
300- m = await_ ( fastui_form (FormMultipleFiles ).dependency (request ) )
295+ m = await fastui_form (FormMultipleFiles ).dependency (request )
301296 assert m .model_dump () == {'files' : [file ]}
302297
303298
304- def test_multiple_files_multiple ():
299+ async def test_multiple_files_multiple ():
305300 file1 = UploadFile (BytesIO (b'foobar' ), size = 6 , filename = 'image1.png' )
306301 file2 = UploadFile (BytesIO (b'foobar' ), size = 6 , filename = 'image2.png' )
307302 request = FakeRequest ([('files' , file1 ), ('files' , file2 )])
308303
309- m = await_ ( fastui_form (FormMultipleFiles ).dependency (request ) )
304+ m = await fastui_form (FormMultipleFiles ).dependency (request )
310305 assert m .model_dump () == {'files' : [file1 , file2 ]}
0 commit comments