sanic/tests
L. Kärkkäinen a62c84a954
Socket binding implemented properly for IPv6 and UNIX sockets. (#1641)
* Socket binding implemented properly for IPv6 and UNIX sockets.

- app.run("::1") for IPv6
- app.run("unix:/tmp/server.sock") for UNIX sockets
- app.run("localhost") retains old functionality (randomly either IPv4 or IPv6)

Do note that IPv6 and UNIX sockets are not fully supported by other Sanic facilities.
In particular, request.server_name and request.server_port are currently unreliable.

* Fix Windows compatibility by not referring to socket.AF_UNIX unless needed.

* Compatibility fix.

* Fix test of existing unix socket.

* Cleaner unix socket removal.

* Remove unix socket on exit also with workers=1.

* More pedantic UNIX socket implementation.

* Refactor app to take unix= argument instead of unix:-prefixed host. Goin' fast @ unix-socket fixed.

* Linter

* Proxy properties cleanup. Slight changes of semantics. SERVER_NAME now overrides everything.

* Have server fill in connection info instead of request asking the socket.

- Would be a good idea to remove request.transport entirely but I didn't dare to touch it yet.

* Linter 💣🌟💀

* Fix typing issues. request.server_name returns empty string if host header is missing.

* Fix tests

* Tests were failing, fix connection info.

* Linter nazi says you need that empty line.

* Rename a to addr, leave client empty for unix sockets.

* Add --unix support when sanic is run as module.

* Remove remove_route, deprecated in 19.6.

* Improved unix socket binding.

* More robust creating and unlinking of sockets. Show proper and not temporary name in conn_info.

* Add comprehensive tests for unix socket mode.

* Hide some imports inside functions to avoid Windows failure.

* Mention unix socket mode in deployment docs.

* Fix merge commit.

* Make test_unix_connection_multiple_workers pickleable for spawn mode multiprocessing.

Co-authored-by: L. Kärkkäinen <tronic@users.noreply.github.com>
Co-authored-by: Adam Hopkins <admhpkns@gmail.com>
2020-06-29 08:55:32 +03:00
..
benchmark Create requests-async based TestClient, remove aiohttp dependency, drop Python 3.5 2019-04-30 15:26:06 +03:00
certs initial commit 2017-03-03 11:44:50 -05:00
performance Create requests-async based TestClient, remove aiohttp dependency, drop Python 3.5 2019-04-30 15:26:06 +03:00
static Add content_type flag to Sanic.static (#1267) 2018-07-20 22:31:15 -07:00
conftest.py Use f-strings instead of str.format() (#1793) 2020-02-25 14:01:13 -06:00
test_app.py Add sanic as an entry point command (#1866) 2020-06-05 07:14:18 -07:00
test_asgi_client.py Increase testing coverage for ASGI 2019-06-19 00:38:58 +03:00
test_asgi.py Add sanic as an entry point command (#1866) 2020-06-05 07:14:18 -07:00
test_bad_request.py No tracebacks on normal errors and prettier error pages (#1768) 2020-01-20 08:58:14 -06:00
test_blueprint_group.py Use f-strings instead of str.format() (#1793) 2020-02-25 14:01:13 -06:00
test_blueprints.py Add handler names for websockets for url_for usage (#1880) 2020-06-28 14:45:52 +03:00
test_config.py Fix Ctrl+C and tests on Windows. (#1808) 2020-03-25 21:42:46 -07:00
test_cookies.py Deprecation and test cleanup (#1818) 2020-03-28 11:43:14 -07:00
test_create_task.py Deprecation and test cleanup (#1818) 2020-03-28 11:43:14 -07:00
test_custom_protocol.py Create requests-async based TestClient, remove aiohttp dependency, drop Python 3.5 2019-04-30 15:26:06 +03:00
test_custom_request.py Fix Ctrl+C and tests on Windows. (#1808) 2020-03-25 21:42:46 -07:00
test_dynamic_routes.py Create requests-async based TestClient, remove aiohttp dependency, drop Python 3.5 2019-04-30 15:26:06 +03:00
test_exceptions_handler.py Use f-strings instead of str.format() (#1793) 2020-02-25 14:01:13 -06:00
test_exceptions.py No tracebacks on normal errors and prettier error pages (#1768) 2020-01-20 08:58:14 -06:00
test_headers.py deprecate None value support for app name (#1705) 2019-10-23 09:12:20 -07:00
test_helpers.py Add custom request support to ASGI mode; fix a couple tests 2019-06-24 22:59:23 +03:00
test_keep_alive_timeout.py Add sanic as an entry point command (#1866) 2020-06-05 07:14:18 -07:00
test_logging.py Fix Ctrl+C and tests on Windows. (#1808) 2020-03-25 21:42:46 -07:00
test_logo.py Fix Ctrl+C and tests on Windows. (#1808) 2020-03-25 21:42:46 -07:00
test_middleware.py No tracebacks on normal errors and prettier error pages (#1768) 2020-01-20 08:58:14 -06:00
test_multiprocessing.py Add handler names for websockets for url_for usage (#1880) 2020-06-28 14:45:52 +03:00
test_named_routes.py Use f-strings instead of str.format() (#1793) 2020-02-25 14:01:13 -06:00
test_payload_too_large.py No tracebacks on normal errors and prettier error pages (#1768) 2020-01-20 08:58:14 -06:00
test_redirect.py Use f-strings instead of str.format() (#1793) 2020-02-25 14:01:13 -06:00
test_reloader.py Add handler names for websockets for url_for usage (#1880) 2020-06-28 14:45:52 +03:00
test_request_buffer_queue_size.py Swap out requests-async for httpx (#1728) 2019-12-20 19:23:52 -08:00
test_request_cancel.py Lifespan and code cleanup 2019-06-04 10:58:00 +03:00
test_request_data.py Remove the old request context API deprecated in 19.9. Use request.ctx instead. (#1801) 2020-03-05 21:40:46 -08:00
test_request_stream.py Add sanic as an entry point command (#1866) 2020-06-05 07:14:18 -07:00
test_request_timeout.py Add sanic as an entry point command (#1866) 2020-06-05 07:14:18 -07:00
test_requests.py Socket binding implemented properly for IPv6 and UNIX sockets. (#1641) 2020-06-29 08:55:32 +03:00
test_response_timeout.py No tracebacks on normal errors and prettier error pages (#1768) 2020-01-20 08:58:14 -06:00
test_response.py Add handler names for websockets for url_for usage (#1880) 2020-06-28 14:45:52 +03:00
test_routes.py Add version parameter to websocket routes (#1760) 2020-06-28 09:17:18 +03:00
test_server_events.py Fix Ctrl+C and tests on Windows. (#1808) 2020-03-25 21:42:46 -07:00
test_signal_handlers.py Add sanic as an entry point command (#1866) 2020-06-05 07:14:18 -07:00
test_static.py Add sanic as an entry point command (#1866) 2020-06-05 07:14:18 -07:00
test_test_client_port.py Fix Ctrl+C and tests on Windows. (#1808) 2020-03-25 21:42:46 -07:00
test_unix_socket.py Socket binding implemented properly for IPv6 and UNIX sockets. (#1641) 2020-06-29 08:55:32 +03:00
test_url_building.py Use f-strings instead of str.format() (#1793) 2020-02-25 14:01:13 -06:00
test_url_for_static.py Use f-strings instead of str.format() (#1793) 2020-02-25 14:01:13 -06:00
test_url_for.py Add handler names for websockets for url_for usage (#1880) 2020-06-28 14:45:52 +03:00
test_utf8.py Swap out requests-async for httpx (#1728) 2019-12-20 19:23:52 -08:00
test_vhosts.py Deprecation and test cleanup (#1818) 2020-03-28 11:43:14 -07:00
test_views.py Add sanic as an entry point command (#1866) 2020-06-05 07:14:18 -07:00
test_worker.py Add sanic as an entry point command (#1866) 2020-06-05 07:14:18 -07:00