66import pydantic
77import pytest
88import sqlalchemy
9+ from asgi_lifespan import LifespanManager
910from fastapi import FastAPI
10- from starlette . testclient import TestClient
11+ from httpx import AsyncClient
1112
1213import ormar
1314from ormar import post_save , property_field
@@ -153,34 +154,35 @@ async def create_user7(user: RandomModel):
153154 return await user .save ()
154155
155156
156- def test_excluding_fields_in_endpoints ():
157- client = TestClient (app )
158- with client as client :
157+ @pytest .mark .asyncio
158+ async def test_excluding_fields_in_endpoints ():
159+ client = AsyncClient (app = app , base_url = "http://testserver" )
160+ async with client as client , LifespanManager (app ):
159161 user = {
160162 "email" : "test@domain.com" ,
161163 "password" : "^*^%A*DA*IAAA" ,
162164 "first_name" : "John" ,
163165 "last_name" : "Doe" ,
164166 }
165- response = client .post ("/users/" , json = user )
167+ response = await client .post ("/users/" , json = user )
166168 created_user = User (** response .json ())
167169 assert created_user .pk is not None
168170 assert created_user .password is None
169171
170172 user2 = {"email" : "test@domain.com" , "first_name" : "John" , "last_name" : "Doe" }
171173
172- response = client .post ("/users/" , json = user2 )
174+ response = await client .post ("/users/" , json = user2 )
173175 created_user = User (** response .json ())
174176 assert created_user .pk is not None
175177 assert created_user .password is None
176178
177- response = client .post ("/users2/" , json = user )
179+ response = await client .post ("/users2/" , json = user )
178180 created_user2 = User (** response .json ())
179181 assert created_user2 .pk is not None
180182 assert created_user2 .password is None
181183
182184 # response has only 3 fields from UserBase
183- response = client .post ("/users3/" , json = user )
185+ response = await client .post ("/users3/" , json = user )
184186 assert list (response .json ().keys ()) == ["email" , "first_name" , "last_name" ]
185187
186188 timestamp = datetime .datetime .now ()
@@ -192,7 +194,7 @@ def test_excluding_fields_in_endpoints():
192194 "last_name" : "Doe" ,
193195 "timestamp" : str (timestamp ),
194196 }
195- response = client .post ("/users4/" , json = user3 )
197+ response = await client .post ("/users4/" , json = user3 )
196198 assert list (response .json ().keys ()) == [
197199 "id" ,
198200 "email" ,
@@ -209,7 +211,7 @@ def test_excluding_fields_in_endpoints():
209211 assert isinstance (user_instance .timestamp , datetime .datetime )
210212 assert user_instance .timestamp == timestamp
211213
212- response = client .post ("/users4/" , json = user3 )
214+ response = await client .post ("/users4/" , json = user3 )
213215 assert list (response .json ().keys ()) == [
214216 "id" ,
215217 "email" ,
@@ -226,11 +228,12 @@ def test_excluding_fields_in_endpoints():
226228 )
227229
228230
229- def test_adding_fields_in_endpoints ():
230- client = TestClient (app )
231- with client as client :
231+ @pytest .mark .asyncio
232+ async def test_adding_fields_in_endpoints ():
233+ client = AsyncClient (app = app , base_url = "http://testserver" )
234+ async with client as client , LifespanManager (app ):
232235 user3 = {"last_name" : "Test" , "full_name" : "deleted" }
233- response = client .post ("/random/" , json = user3 )
236+ response = await client .post ("/random/" , json = user3 )
234237 assert list (response .json ().keys ()) == [
235238 "id" ,
236239 "password" ,
@@ -242,7 +245,7 @@ def test_adding_fields_in_endpoints():
242245 assert response .json ().get ("full_name" ) == "John Test"
243246
244247 user3 = {"last_name" : "Test" }
245- response = client .post ("/random/" , json = user3 )
248+ response = await client .post ("/random/" , json = user3 )
246249 assert list (response .json ().keys ()) == [
247250 "id" ,
248251 "password" ,
@@ -254,11 +257,12 @@ def test_adding_fields_in_endpoints():
254257 assert response .json ().get ("full_name" ) == "John Test"
255258
256259
257- def test_adding_fields_in_endpoints2 ():
258- client = TestClient (app )
259- with client as client :
260+ @pytest .mark .asyncio
261+ async def test_adding_fields_in_endpoints2 ():
262+ client = AsyncClient (app = app , base_url = "http://testserver" )
263+ async with client as client , LifespanManager (app ):
260264 user3 = {"last_name" : "Test" }
261- response = client .post ("/random2/" , json = user3 )
265+ response = await client .post ("/random2/" , json = user3 )
262266 assert list (response .json ().keys ()) == [
263267 "id" ,
264268 "password" ,
@@ -270,18 +274,19 @@ def test_adding_fields_in_endpoints2():
270274 assert response .json ().get ("full_name" ) == "John Test"
271275
272276
273- def test_excluding_property_field_in_endpoints2 ():
277+ @pytest .mark .asyncio
278+ async def test_excluding_property_field_in_endpoints2 ():
274279
275280 dummy_registry = {}
276281
277282 @post_save (RandomModel )
278283 async def after_save (sender , instance , ** kwargs ):
279284 dummy_registry [instance .pk ] = instance .dict ()
280285
281- client = TestClient (app )
282- with client as client :
286+ client = AsyncClient (app = app , base_url = "http://testserver" )
287+ async with client as client , LifespanManager ( app ) :
283288 user3 = {"last_name" : "Test" }
284- response = client .post ("/random3/" , json = user3 )
289+ response = await client .post ("/random3/" , json = user3 )
285290 assert list (response .json ().keys ()) == [
286291 "id" ,
287292 "password" ,
0 commit comments