Merge pull request #745 from messense/feature/gunicorn-worker-test-case
Add a simple integration test for Gunicorn worker
This commit is contained in:
commit
c6d68009d2
|
@ -9,3 +9,4 @@ pytest
|
|||
tox
|
||||
ujson
|
||||
uvloop
|
||||
gunicorn
|
||||
|
|
|
@ -545,6 +545,9 @@ class Sanic:
|
|||
:param protocol: Subclass of asyncio protocol class
|
||||
:return: Nothing
|
||||
"""
|
||||
if sock is None:
|
||||
host, port = host or "127.0.0.1", port or 8000
|
||||
|
||||
if log_config:
|
||||
logging.config.dictConfig(log_config)
|
||||
if protocol is None:
|
||||
|
@ -592,6 +595,9 @@ class Sanic:
|
|||
NOTE: This does not support multiprocessing and is not the preferred
|
||||
way to run a Sanic application.
|
||||
"""
|
||||
if sock is None:
|
||||
host, port = host or "127.0.0.1", port or 8000
|
||||
|
||||
if log_config:
|
||||
logging.config.dictConfig(log_config)
|
||||
if protocol is None:
|
||||
|
@ -637,9 +643,6 @@ class Sanic:
|
|||
protocol=HttpProtocol, backlog=100, stop_event=None,
|
||||
register_sys_signals=True, run_async=False, has_log=True):
|
||||
"""Helper function used by `run` and `create_server`."""
|
||||
if sock is None:
|
||||
host, port = host or "127.0.0.1", port or 8000
|
||||
|
||||
if isinstance(ssl, dict):
|
||||
# try common aliaseses
|
||||
cert = ssl.get('cert') or ssl.get('certificate')
|
||||
|
|
|
@ -48,8 +48,6 @@ class GunicornWorker(base.Worker):
|
|||
protocol = (WebSocketProtocol if self.app.callable.websocket_enabled
|
||||
else HttpProtocol)
|
||||
self._server_settings = self.app.callable._helper(
|
||||
host=None,
|
||||
port=None,
|
||||
loop=self.loop,
|
||||
debug=is_debug,
|
||||
protocol=protocol,
|
||||
|
|
22
tests/test_worker.py
Normal file
22
tests/test_worker.py
Normal file
|
@ -0,0 +1,22 @@
|
|||
import time
|
||||
import json
|
||||
import shlex
|
||||
import subprocess
|
||||
import urllib.request
|
||||
|
||||
import pytest
|
||||
|
||||
|
||||
@pytest.fixture(scope='module')
|
||||
def gunicorn_worker():
|
||||
command = 'gunicorn --bind 127.0.0.1:1337 --worker-class sanic.worker.GunicornWorker examples.simple_server:app'
|
||||
worker = subprocess.Popen(shlex.split(command))
|
||||
time.sleep(1)
|
||||
yield
|
||||
worker.kill()
|
||||
|
||||
|
||||
def test_gunicorn_worker(gunicorn_worker):
|
||||
with urllib.request.urlopen('http://localhost:1337/') as f:
|
||||
res = json.loads(f.read(100).decode())
|
||||
assert res['test']
|
Loading…
Reference in New Issue
Block a user