2
2
from typing import Optional , Sequence
3
3
4
4
import pytest
5
- from httpx import AsyncClient
5
+ from httpx import ASGITransport , AsyncClient
6
6
from starlette .applications import Starlette
7
7
from starlette .requests import Request
8
8
from starlette_admin import (
@@ -104,7 +104,9 @@ async def test_auth_route(self):
104
104
admin .mount_to (app )
105
105
assert app .url_path_for ("admin:login" ) == "/admin/login"
106
106
assert app .url_path_for ("admin:logout" ) == "/admin/logout"
107
- client = AsyncClient (app = app , base_url = "http://testserver" )
107
+ client = AsyncClient (
108
+ transport = ASGITransport (app = app ), base_url = "http://testserver"
109
+ )
108
110
response = await client .get ("/admin/login" )
109
111
assert response .status_code == 200
110
112
response = await client .get ("/admin/" , follow_redirects = False )
@@ -119,7 +121,9 @@ async def test_not_implemented_login(self):
119
121
admin = BaseAdmin (auth_provider = AuthProvider ())
120
122
app = Starlette ()
121
123
admin .mount_to (app )
122
- client = AsyncClient (app = app , base_url = "http://testserver" )
124
+ client = AsyncClient (
125
+ transport = ASGITransport (app = app ), base_url = "http://testserver"
126
+ )
123
127
response = await client .post (
124
128
"/admin/login" ,
125
129
follow_redirects = False ,
@@ -133,7 +137,9 @@ async def test_custom_login_path(self):
133
137
app = Starlette ()
134
138
admin .mount_to (app )
135
139
assert app .url_path_for ("admin:login" ) == "/admin/custom-login"
136
- client = AsyncClient (app = app , base_url = "http://testserver" )
140
+ client = AsyncClient (
141
+ transport = ASGITransport (app = app ), base_url = "http://testserver"
142
+ )
137
143
response = await client .get ("/admin/" , follow_redirects = False )
138
144
assert response .status_code == 303
139
145
assert (
@@ -151,7 +157,9 @@ async def test_invalid_login(self):
151
157
app = Starlette ()
152
158
admin .mount_to (app )
153
159
assert app .url_path_for ("admin:login" ) == "/admin/login"
154
- client = AsyncClient (app = app , base_url = "http://testserver" )
160
+ client = AsyncClient (
161
+ transport = ASGITransport (app = app ), base_url = "http://testserver"
162
+ )
155
163
data = {"username" : "ad" , "password" : "invalid-password" , "remember_me" : "on" }
156
164
response = await client .post ("/admin/login" , follow_redirects = False , data = data )
157
165
assert "Ensure username has at least 03 characters" in response .text
@@ -165,7 +173,9 @@ async def test_valid_login(self):
165
173
app = Starlette ()
166
174
admin .mount_to (app )
167
175
assert app .url_path_for ("admin:login" ) == "/admin/login"
168
- client = AsyncClient (app = app , base_url = "http://testserver" )
176
+ client = AsyncClient (
177
+ transport = ASGITransport (app = app ), base_url = "http://testserver"
178
+ )
169
179
response = await client .post (
170
180
"/admin/login" ,
171
181
data = {"username" : "admin" , "password" : "password" , "remember_me" : "on" },
@@ -200,7 +210,9 @@ def client(self, report_view):
200
210
admin .add_view (report_view )
201
211
admin .add_view (PostView )
202
212
admin .mount_to (app )
203
- return AsyncClient (app = app , base_url = "http://testserver" )
213
+ return AsyncClient (
214
+ transport = ASGITransport (app = app ), base_url = "http://testserver"
215
+ )
204
216
205
217
@pytest .mark .asyncio
206
218
async def test_access_custom_view (self , client : AsyncClient ):
@@ -317,7 +329,9 @@ def client(self):
317
329
app = Starlette ()
318
330
admin .add_view (PostView )
319
331
admin .mount_to (app )
320
- return AsyncClient (app = app , base_url = "http://testserver" )
332
+ return AsyncClient (
333
+ transport = ASGITransport (app = app ), base_url = "http://testserver"
334
+ )
321
335
322
336
@pytest .mark .asyncio
323
337
@pytest .mark .parametrize (
0 commit comments