Merge pull request #270 from seemethere/add_server_event_tests
Add server event tests
This commit is contained in:
commit
35bb71f952
|
@ -64,11 +64,11 @@ def query_string(request):
|
||||||
# Run Server
|
# Run Server
|
||||||
# ----------------------------------------------- #
|
# ----------------------------------------------- #
|
||||||
|
|
||||||
def after_start(loop):
|
def after_start(app, loop):
|
||||||
log.info("OH OH OH OH OHHHHHHHH")
|
log.info("OH OH OH OH OHHHHHHHH")
|
||||||
|
|
||||||
|
|
||||||
def before_stop(loop):
|
def before_stop(app, loop):
|
||||||
log.info("TRIED EVERYTHING")
|
log.info("TRIED EVERYTHING")
|
||||||
|
|
||||||
|
|
||||||
|
|
59
tests/tests_server_events.py
Normal file
59
tests/tests_server_events.py
Normal file
|
@ -0,0 +1,59 @@
|
||||||
|
from io import StringIO
|
||||||
|
from random import choice
|
||||||
|
from string import ascii_letters
|
||||||
|
import signal
|
||||||
|
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
from sanic import Sanic
|
||||||
|
|
||||||
|
AVAILABLE_LISTENERS = [
|
||||||
|
'before_start',
|
||||||
|
'after_start',
|
||||||
|
'before_stop',
|
||||||
|
'after_stop'
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
def create_listener(listener_name, in_list):
|
||||||
|
async def _listener(app, loop):
|
||||||
|
print('DEBUG MESSAGE FOR PYTEST for {}'.format(listener_name))
|
||||||
|
in_list.insert(0, app.name + listener_name)
|
||||||
|
return _listener
|
||||||
|
|
||||||
|
|
||||||
|
def start_stop_app(random_name_app, **run_kwargs):
|
||||||
|
|
||||||
|
def stop_on_alarm(signum, frame):
|
||||||
|
raise KeyboardInterrupt('SIGINT for sanic to stop gracefully')
|
||||||
|
|
||||||
|
signal.signal(signal.SIGALRM, stop_on_alarm)
|
||||||
|
signal.alarm(1)
|
||||||
|
try:
|
||||||
|
random_name_app.run(**run_kwargs)
|
||||||
|
except KeyboardInterrupt:
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize('listener_name', AVAILABLE_LISTENERS)
|
||||||
|
def test_single_listener(listener_name):
|
||||||
|
"""Test that listeners on their own work"""
|
||||||
|
random_name_app = Sanic(''.join(
|
||||||
|
[choice(ascii_letters) for _ in range(choice(range(5, 10)))]))
|
||||||
|
output = list()
|
||||||
|
start_stop_app(
|
||||||
|
random_name_app,
|
||||||
|
**{listener_name: create_listener(listener_name, output)})
|
||||||
|
assert random_name_app.name + listener_name == output.pop()
|
||||||
|
|
||||||
|
|
||||||
|
def test_all_listeners():
|
||||||
|
random_name_app = Sanic(''.join(
|
||||||
|
[choice(ascii_letters) for _ in range(choice(range(5, 10)))]))
|
||||||
|
output = list()
|
||||||
|
start_stop_app(
|
||||||
|
random_name_app,
|
||||||
|
**{listener_name: create_listener(listener_name, output)
|
||||||
|
for listener_name in AVAILABLE_LISTENERS})
|
||||||
|
for listener_name in AVAILABLE_LISTENERS:
|
||||||
|
assert random_name_app.name + listener_name == output.pop()
|
Loading…
Reference in New Issue
Block a user