
* 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 dc5d682448e3f6595bdca5cb764e5f26ca29e295. * 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>
35 lines
946 B
Python
35 lines
946 B
Python
from sanic.response import json, text
|
|
from sanic.testing import PORT, SanicTestClient
|
|
|
|
|
|
# ------------------------------------------------------------ #
|
|
# UTF-8
|
|
# ------------------------------------------------------------ #
|
|
|
|
|
|
def test_test_client_port_none(app):
|
|
@app.get("/get")
|
|
def handler(request):
|
|
return text("OK")
|
|
|
|
test_client = SanicTestClient(app, port=None)
|
|
|
|
request, response = test_client.get("/get")
|
|
assert response.text == "OK"
|
|
|
|
request, response = test_client.post("/get")
|
|
assert response.status == 405
|
|
|
|
|
|
def test_test_client_port_default(app):
|
|
@app.get("/get")
|
|
def handler(request):
|
|
return json(request.transport.get_extra_info("sockname")[1])
|
|
|
|
test_client = SanicTestClient(app)
|
|
assert test_client.port == PORT # Can be None before request
|
|
|
|
request, response = test_client.get("/get")
|
|
assert test_client.port > 0
|
|
assert response.json == test_client.port
|