sanic/tests/test_signal_handlers.py

51 lines
1.3 KiB
Python
Raw Normal View History

from sanic import Sanic
from sanic.response import HTTPResponse
2018-03-16 04:28:52 +00:00
from sanic.testing import HOST, PORT
from unittest.mock import MagicMock
import asyncio
from queue import Queue
async def stop(app, loop):
await asyncio.sleep(0.1)
app.stop()
calledq = Queue()
def set_loop(app, loop):
loop.add_signal_handler = MagicMock()
def after(app, loop):
calledq.put(loop.add_signal_handler.called)
def test_register_system_signals():
"""Test if sanic register system signals"""
app = Sanic('test_register_system_signals')
@app.route('/hello')
async def hello_route(request):
return HTTPResponse()
app.listener('after_server_start')(stop)
app.listener('before_server_start')(set_loop)
app.listener('after_server_stop')(after)
2018-03-16 04:28:52 +00:00
app.run(HOST, PORT)
assert calledq.get() == True
def test_dont_register_system_signals():
"""Test if sanic don't register system signals"""
app = Sanic('test_register_system_signals')
@app.route('/hello')
async def hello_route(request):
return HTTPResponse()
app.listener('after_server_start')(stop)
app.listener('before_server_start')(set_loop)
app.listener('after_server_stop')(after)
2018-03-16 04:28:52 +00:00
app.run(HOST, PORT, register_sys_signals=False)
assert calledq.get() == False