120f0262f7
* Fix Ctrl+C on Windows.
* Disable testing of a function N/A on Windows.
* Add test for coverage, avoid crash on missing _stopping.
* Initialise StreamingHTTPResponse.protocol = None
* Improved comments.
* Reduce amount of data in test_request_stream to avoid failures on Windows.
* The Windows test doesn't work on Windows :(
* Use port numbers more likely to be free than 8000.
* Disable the other signal tests on Windows as well.
* Windows doesn't properly support SO_REUSEADDR, so that's disabled in Python, and thus rebinding fails. For successful testing, reuse port instead.
* app.run argument handling: added server kwargs (alike create_server), added warning on extra kwargs, made auto_reload explicit argument. Another go at Windows tests
* Revert "app.run argument handling: added server kwargs (alike create_server), added warning on extra kwargs, made auto_reload explicit argument. Another go at Windows tests"
This reverts commit dc5d682448
.
* Use random test server port on most tests. Should avoid port/addr reuse issues.
* Another test to random port instead of 8000.
* Fix deprecation warnings about missing name on Sanic() in tests.
* Linter and typing
* Increase test coverage
* Rewrite test for ctrlc_windows_workaround
* py36 compat
* py36 compat
* py36 compat
* Don't rely on loop internals but add a stopping flag to app.
* App may be restarted.
* py36 compat
* Linter
* Add a constant for OS checking.
Co-authored-by: L. Kärkkäinen <tronic@users.noreply.github.com>
98 lines
2.4 KiB
Python
98 lines
2.4 KiB
Python
import asyncio
|
|
import logging
|
|
|
|
from sanic.config import BASE_LOGO
|
|
from sanic.testing import PORT
|
|
|
|
|
|
try:
|
|
import uvloop # noqa
|
|
|
|
ROW = 0
|
|
except BaseException:
|
|
ROW = 1
|
|
|
|
|
|
def test_logo_base(app, caplog):
|
|
server = app.create_server(
|
|
debug=True, return_asyncio_server=True, port=PORT
|
|
)
|
|
loop = asyncio.new_event_loop()
|
|
asyncio.set_event_loop(loop)
|
|
loop._stopping = False
|
|
|
|
with caplog.at_level(logging.DEBUG):
|
|
_server = loop.run_until_complete(server)
|
|
|
|
_server.close()
|
|
loop.run_until_complete(_server.wait_closed())
|
|
app.stop()
|
|
|
|
assert caplog.record_tuples[ROW][1] == logging.DEBUG
|
|
assert caplog.record_tuples[ROW][2] == BASE_LOGO
|
|
|
|
|
|
def test_logo_false(app, caplog):
|
|
app.config.LOGO = False
|
|
|
|
server = app.create_server(
|
|
debug=True, return_asyncio_server=True, port=PORT
|
|
)
|
|
loop = asyncio.new_event_loop()
|
|
asyncio.set_event_loop(loop)
|
|
loop._stopping = False
|
|
|
|
with caplog.at_level(logging.DEBUG):
|
|
_server = loop.run_until_complete(server)
|
|
|
|
_server.close()
|
|
loop.run_until_complete(_server.wait_closed())
|
|
app.stop()
|
|
|
|
banner, port = caplog.record_tuples[ROW][2].rsplit(":", 1)
|
|
assert caplog.record_tuples[ROW][1] == logging.INFO
|
|
assert banner == "Goin' Fast @ http://127.0.0.1"
|
|
assert int(port) > 0
|
|
|
|
|
|
def test_logo_true(app, caplog):
|
|
app.config.LOGO = True
|
|
|
|
server = app.create_server(
|
|
debug=True, return_asyncio_server=True, port=PORT
|
|
)
|
|
loop = asyncio.new_event_loop()
|
|
asyncio.set_event_loop(loop)
|
|
loop._stopping = False
|
|
|
|
with caplog.at_level(logging.DEBUG):
|
|
_server = loop.run_until_complete(server)
|
|
|
|
_server.close()
|
|
loop.run_until_complete(_server.wait_closed())
|
|
app.stop()
|
|
|
|
assert caplog.record_tuples[ROW][1] == logging.DEBUG
|
|
assert caplog.record_tuples[ROW][2] == BASE_LOGO
|
|
|
|
|
|
def test_logo_custom(app, caplog):
|
|
app.config.LOGO = "My Custom Logo"
|
|
|
|
server = app.create_server(
|
|
debug=True, return_asyncio_server=True, port=PORT
|
|
)
|
|
loop = asyncio.new_event_loop()
|
|
asyncio.set_event_loop(loop)
|
|
loop._stopping = False
|
|
|
|
with caplog.at_level(logging.DEBUG):
|
|
_server = loop.run_until_complete(server)
|
|
|
|
_server.close()
|
|
loop.run_until_complete(_server.wait_closed())
|
|
app.stop()
|
|
|
|
assert caplog.record_tuples[ROW][1] == logging.DEBUG
|
|
assert caplog.record_tuples[ROW][2] == "My Custom Logo"
|