def test_ext_init(): """Test of find_best_app.""" app = Flask('exttest') ext = FlaskCeleryExt(app=app) assert ext.celery app = Flask('exttest') ext = FlaskCeleryExt() assert ext.celery is None ext.init_app(app) assert ext.celery def factory(flask_app): celery = Celery('myname') celery.flask_app = flask_app return celery app = Flask('exttest') ext = FlaskCeleryExt(app=app, create_celery_app=factory) ext.init_app(app) assert ext.celery
def test_ext_init(): """Test of find_best_app.""" app = Flask('exttest') ext = FlaskCeleryExt(app=app) assert ext.celery app = Flask('exttest') ext = FlaskCeleryExt() assert ext.celery is None ext.init_app(app) assert ext.celery def factory(flask_app): celery = Celery('myname') celery.flask_app = flask_app return celery app = Flask('exttest') ext = FlaskCeleryExt(app=app, create_celery_app=factory) ext.init_app(app) assert ext.celery
"""All Celery tasks are declared in submodules of this module.""" from celery import Task from flask_celeryext import FlaskCeleryExt from ..flask import app ext = FlaskCeleryExt() ext.init_app(app) celery = ext.celery del app, ext, FlaskCeleryExt # Use the same URL for both the result backend and the broker. celery.conf['result_backend'] = celery.conf.broker_url class AppContextTask(Task): abstract = True def __call__(self, *args, **kwargs): """Execute task.""" with self.app.flask_app.app_context(): return Task.__call__(self, *args, **kwargs) # Create a new Flask context for every task. # This should flush database changes on the end of each task. celery.Task = AppContextTask import importlib # noqa: E402 import os # noqa: E402 import pkgutil # noqa: E402