Merge pull request #1063 from r0fls/1062
try to inject the app in add_task method
This commit is contained in:
commit
2f0076f429
|
@ -88,6 +88,9 @@ class Sanic:
|
|||
"""
|
||||
try:
|
||||
if callable(task):
|
||||
try:
|
||||
self.loop.create_task(task(self))
|
||||
except TypeError:
|
||||
self.loop.create_task(task())
|
||||
else:
|
||||
self.loop.create_task(task)
|
||||
|
@ -95,6 +98,9 @@ class Sanic:
|
|||
@self.listener('before_server_start')
|
||||
def run(app, loop):
|
||||
if callable(task):
|
||||
try:
|
||||
loop.create_task(task(self))
|
||||
except TypeError:
|
||||
loop.create_task(task())
|
||||
else:
|
||||
loop.create_task(task)
|
||||
|
|
|
@ -2,6 +2,7 @@ from sanic import Sanic
|
|||
from sanic.response import text
|
||||
from threading import Event
|
||||
import asyncio
|
||||
from queue import Queue
|
||||
|
||||
|
||||
def test_create_task():
|
||||
|
@ -28,3 +29,19 @@ def test_create_task():
|
|||
|
||||
request, response = app.test_client.get('/late')
|
||||
assert response.body == b'True'
|
||||
|
||||
def test_create_task_with_app_arg():
|
||||
app = Sanic('test_add_task')
|
||||
q = Queue()
|
||||
|
||||
@app.route('/')
|
||||
def not_set(request):
|
||||
return "hello"
|
||||
|
||||
async def coro(app):
|
||||
q.put(app.name)
|
||||
|
||||
app.add_task(coro)
|
||||
|
||||
request, response = app.test_client.get('/')
|
||||
assert q.get() == 'test_add_task'
|
||||
|
|
Loading…
Reference in New Issue
Block a user