Add app.test_mode which is set on testing calls
This commit is contained in:
parent
db1c819fe1
commit
c347ff742e
|
@ -90,6 +90,7 @@ class Sanic:
|
||||||
self.named_response_middleware = {}
|
self.named_response_middleware = {}
|
||||||
# Register alternative method names
|
# Register alternative method names
|
||||||
self.go_fast = self.run
|
self.go_fast = self.run
|
||||||
|
self.test_mode = False
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def loop(self):
|
def loop(self):
|
||||||
|
|
|
@ -21,6 +21,7 @@ class SanicTestClient:
|
||||||
self.app = app
|
self.app = app
|
||||||
self.port = port
|
self.port = port
|
||||||
self.host = host
|
self.host = host
|
||||||
|
self.app.test_mode = True
|
||||||
|
|
||||||
def get_new_session(self):
|
def get_new_session(self):
|
||||||
return httpx.AsyncClient(verify=False)
|
return httpx.AsyncClient(verify=False)
|
||||||
|
@ -200,6 +201,7 @@ class SanicASGITestClient(httpx.AsyncClient):
|
||||||
app.asgi = True
|
app.asgi = True
|
||||||
|
|
||||||
self.app = app
|
self.app = app
|
||||||
|
self.app.test_mode = True
|
||||||
|
|
||||||
dispatch = SanicASGIDispatch(app=app, client=(ASGI_HOST, PORT or 0))
|
dispatch = SanicASGIDispatch(app=app, client=(ASGI_HOST, PORT or 0))
|
||||||
super().__init__(dispatch=dispatch, base_url=base_url)
|
super().__init__(dispatch=dispatch, base_url=base_url)
|
||||||
|
|
|
@ -222,3 +222,24 @@ def test_handle_request_with_nested_sanic_exception(app, monkeypatch, caplog):
|
||||||
def test_app_name_required():
|
def test_app_name_required():
|
||||||
with pytest.deprecated_call():
|
with pytest.deprecated_call():
|
||||||
Sanic()
|
Sanic()
|
||||||
|
|
||||||
|
|
||||||
|
def test_app_has_test_mode_sync(app):
|
||||||
|
@app.get("/")
|
||||||
|
def handler(request):
|
||||||
|
assert request.app.test_mode
|
||||||
|
return text("test")
|
||||||
|
|
||||||
|
_, response = app.test_client.get("/")
|
||||||
|
assert response.status == 200
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.asyncio
|
||||||
|
async def test_app_has_test_mode_async(app):
|
||||||
|
@app.get("/")
|
||||||
|
async def handler(request):
|
||||||
|
assert request.app.test_mode
|
||||||
|
return text("test")
|
||||||
|
|
||||||
|
_, response = await app.asgi_client.get("/")
|
||||||
|
assert response.status == 200
|
||||||
|
|
Loading…
Reference in New Issue
Block a user