Environment:
- pytest ==5.3.5
- sanic ==19.12.2
- python 3.7.6
- macos 10.15.3
I have created a dummy sanic project with a simple pytest file test-server.py:
from sanic import Sanic from sanic.response import empty app = Sanic(__name__) @app.route(‘/’) async def dummy_get(request): return empty() def test_dummy_get(): _, response = app.test_client.get(‘/’) assert response.status == 204
Running pytest gives me:
[2020-02-24 21:47:22 +0800] [81113] [INFO] Goin’ Fast @ http://127.0.0.1:42101 [2020-02-24 21:47:22 +0800] [81113] [INFO] http://127.0.0.1:42101/ [2020-02-24 21:47:22 +0800] [81113] [ERROR] Exception Traceback (most recent call last): File “/Users/david/.local/share/virtualenvs/sanic-test-3RCHb05m/lib/python3.7/site-packages/sanic/testing.py”, line 120, in _collect_response method, url, *request_args, **request_kwargs File “/Users/david/.local/share/virtualenvs/sanic-test-3RCHb05m/lib/python3.7/site-packages/sanic/testing.py”, line 41, in _local_request url, verify=False, *args, **kwargs File “/Users/david/.local/share/virtualenvs/sanic-test-3RCHb05m/lib/python3.7/site-packages/httpx/client.py”, line 671, in get trust_env=trust_env, File “/Users/david/.local/share/virtualenvs/sanic-test-3RCHb05m/lib/python3.7/site-packages/httpx/client.py”, line 268, in request trust_env=trust_env, File “/Users/david/.local/share/virtualenvs/sanic-test-3RCHb05m/lib/python3.7/site-packages/httpx/client.py”, line 410, in send allow_redirects=allow_redirects, File “/Users/david/.local/share/virtualenvs/sanic-test-3RCHb05m/lib/python3.7/site-packages/httpx/client.py”, line 470, in send_handling_redirects request, verify=verify, cert=cert, timeout=timeout File “/Users/david/.local/share/virtualenvs/sanic-test-3RCHb05m/lib/python3.7/site-packages/httpx/client.py”, line 599, in send_single_request request, verify=verify, cert=cert, timeout=timeout File “/Users/david/.local/share/virtualenvs/sanic-test-3RCHb05m/lib/python3.7/site-packages/httpx/dispatch/proxy_http.py”, line 204, in send request=request, verify=verify, cert=cert, timeout=timeout File “/Users/david/.local/share/virtualenvs/sanic-test-3RCHb05m/lib/python3.7/site-packages/httpx/dispatch/connection_pool.py”, line 126, in send raise exc File “/Users/david/.local/share/virtualenvs/sanic-test-3RCHb05m/lib/python3.7/site-packages/httpx/dispatch/connection_pool.py”, line 121, in send request, verify=verify, cert=cert, timeout=timeout File “/Users/david/.local/share/virtualenvs/sanic-test-3RCHb05m/lib/python3.7/site-packages/httpx/dispatch/connection.py”, line 53, in send await self.connect(verify=verify, cert=cert, timeout=timeout) File “/Users/david/.local/share/virtualenvs/sanic-test-3RCHb05m/lib/python3.7/site-packages/httpx/dispatch/connection.py”, line 82, in connect host, port, ssl_context, timeout File “/Users/david/.local/share/virtualenvs/sanic-test-3RCHb05m/lib/python3.7/site-packages/httpx/concurrency/auto.py”, line 33, in open_tcp_stream return await self.backend.open_tcp_stream(hostname, port, ssl_context, timeout) File “/Users/david/.local/share/virtualenvs/sanic-test-3RCHb05m/lib/python3.7/site-packages/httpx/concurrency/asyncio.py”, line 267, in open_tcp_stream timeout.connect_timeout, File “/usr/local/Cellar/python/3.7.6_1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/asyncio/tasks.py”, line 442, in wait_for return fut.result() File “/usr/local/Cellar/python/3.7.6_1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/asyncio/streams.py”, line 77, in open_connection lambda: protocol, host, port, **kwds) File “uvloop/loop.pyx”, line 1974, in create_connection File “uvloop/loop.pyx”, line 1951, in uvloop.loop.Loop.create_connection ConnectionRefusedError: [Errno 61] Connection refused [2020-02-24 21:47:22 +0800] [81113] [INFO] Starting worker [81113] [2020-02-24 21:47:22 +0800] [81113] [INFO] Stopping worker [81113] [2020-02-24 21:47:22 +0800] [81113] [INFO] Server Stopped
I have also tried specifying port=None and port=8080 for SanicTestClient but got the same error.
When I run the server directly, everything works as normal.
Any ideas?
Update:
After restarting my Macbook Pro, test started passing.