Mergeback of 21.12.1 (#2358)
Co-authored-by: Néstor Pérez <25409753+prryplatypus@users.noreply.github.com> Co-authored-by: Ryu juheon <saidbysolo@gmail.com>
This commit is contained in:
@@ -5,7 +5,7 @@ from os import environ
|
||||
from pathlib import Path
|
||||
from tempfile import TemporaryDirectory
|
||||
from textwrap import dedent
|
||||
from unittest.mock import Mock
|
||||
from unittest.mock import Mock, call
|
||||
|
||||
import pytest
|
||||
|
||||
@@ -399,5 +399,24 @@ def test_config_set_methods(app: Sanic, monkeypatch: MonkeyPatch):
|
||||
post_set.assert_called_once_with("FOO", 5)
|
||||
post_set.reset_mock()
|
||||
|
||||
app.config.update_config({"FOO": 6})
|
||||
post_set.assert_called_once_with("FOO", 6)
|
||||
app.config.update({"FOO": 6}, {"BAR": 7})
|
||||
post_set.assert_has_calls(
|
||||
calls=[
|
||||
call("FOO", 6),
|
||||
call("BAR", 7),
|
||||
]
|
||||
)
|
||||
post_set.reset_mock()
|
||||
|
||||
app.config.update({"FOO": 8}, BAR=9)
|
||||
post_set.assert_has_calls(
|
||||
calls=[
|
||||
call("FOO", 8),
|
||||
call("BAR", 9),
|
||||
],
|
||||
any_order=True,
|
||||
)
|
||||
post_set.reset_mock()
|
||||
|
||||
app.config.update_config({"FOO": 10})
|
||||
post_set.assert_called_once_with("FOO", 10)
|
||||
|
||||
@@ -2,6 +2,7 @@ import asyncio
|
||||
import sys
|
||||
|
||||
from threading import Event
|
||||
from unittest.mock import Mock
|
||||
|
||||
import pytest
|
||||
|
||||
@@ -77,6 +78,25 @@ def test_create_named_task(app):
|
||||
app.run()
|
||||
|
||||
|
||||
def test_named_task_called(app):
|
||||
e = Event()
|
||||
|
||||
async def coro():
|
||||
e.set()
|
||||
|
||||
@app.route("/")
|
||||
async def isset(request):
|
||||
await asyncio.sleep(0.05)
|
||||
return text(str(e.is_set()))
|
||||
|
||||
@app.before_server_start
|
||||
async def setup(app, _):
|
||||
app.add_task(coro, name="dummy_task")
|
||||
|
||||
request, response = app.test_client.get("/")
|
||||
assert response.body == b"True"
|
||||
|
||||
|
||||
@pytest.mark.skipif(sys.version_info < (3, 8), reason="Not supported in 3.7")
|
||||
def test_create_named_task_fails_outside_app(app):
|
||||
async def dummy():
|
||||
|
||||
@@ -334,6 +334,22 @@ def test_config_fallback_before_and_after_startup(app):
|
||||
assert response.content_type == "text/plain; charset=utf-8"
|
||||
|
||||
|
||||
def test_config_fallback_using_update_dict(app):
|
||||
app.config.update({"FALLBACK_ERROR_FORMAT": "text"})
|
||||
|
||||
_, response = app.test_client.get("/error")
|
||||
assert response.status == 500
|
||||
assert response.content_type == "text/plain; charset=utf-8"
|
||||
|
||||
|
||||
def test_config_fallback_using_update_kwarg(app):
|
||||
app.config.update(FALLBACK_ERROR_FORMAT="text")
|
||||
|
||||
_, response = app.test_client.get("/error")
|
||||
assert response.status == 500
|
||||
assert response.content_type == "text/plain; charset=utf-8"
|
||||
|
||||
|
||||
def test_config_fallback_bad_value(app):
|
||||
message = "Unknown format: fake"
|
||||
with pytest.raises(SanicException, match=message):
|
||||
|
||||
@@ -62,19 +62,15 @@ def test_streaming_body_requests(app):
|
||||
|
||||
data = ["hello", "world"]
|
||||
|
||||
class Data(AsyncByteStream):
|
||||
def __init__(self, data):
|
||||
self.data = data
|
||||
|
||||
async def __aiter__(self):
|
||||
for value in self.data:
|
||||
yield value.encode("utf-8")
|
||||
|
||||
client = ReusableClient(app, port=1234)
|
||||
|
||||
async def stream(data):
|
||||
for value in data:
|
||||
yield value.encode("utf-8")
|
||||
|
||||
with client:
|
||||
_, response1 = client.post("/", data=Data(data))
|
||||
_, response2 = client.post("/", data=Data(data))
|
||||
_, response1 = client.post("/", data=stream(data))
|
||||
_, response2 = client.post("/", data=stream(data))
|
||||
|
||||
assert response1.status == response2.status == 200
|
||||
assert response1.json["data"] == response2.json["data"] == data
|
||||
|
||||
@@ -4,8 +4,8 @@ from unittest.mock import Mock, patch
|
||||
|
||||
import pytest
|
||||
|
||||
from sanic.server import loop
|
||||
from sanic.compat import OS_IS_WINDOWS, UVLOOP_INSTALLED
|
||||
from sanic.server import loop
|
||||
|
||||
|
||||
@pytest.mark.skipif(
|
||||
|
||||
Reference in New Issue
Block a user