|
@@ -13,13 +13,18 @@ NO_WORKER = os.environ.get('NO_WORKER')
|
|
|
|
|
|
|
|
|
@contextmanager
|
|
|
-def _create_app(request, enable_logging=False, use_trap=False, **config):
|
|
|
+def _create_app(request,
|
|
|
+ enable_logging=False,
|
|
|
+ use_trap=False,
|
|
|
+ parameters={},
|
|
|
+ **config):
|
|
|
# type: (Any, **Any) -> Celery
|
|
|
"""Utility context used to setup Celery app for pytest fixtures."""
|
|
|
test_app = TestApp(
|
|
|
set_as_current=False,
|
|
|
enable_logging=enable_logging,
|
|
|
config=config,
|
|
|
+ **parameters
|
|
|
)
|
|
|
# request.module is not defined for session
|
|
|
_module = getattr(request, 'module', None)
|
|
@@ -50,6 +55,7 @@ def use_celery_app_trap():
|
|
|
@pytest.fixture(scope='session')
|
|
|
def celery_session_app(request,
|
|
|
celery_config,
|
|
|
+ celery_parameters,
|
|
|
celery_enable_logging,
|
|
|
use_celery_app_trap):
|
|
|
# type: (Any) -> Celery
|
|
@@ -59,6 +65,7 @@ def celery_session_app(request,
|
|
|
with _create_app(request,
|
|
|
enable_logging=celery_enable_logging,
|
|
|
use_trap=use_celery_app_trap,
|
|
|
+ parameters=celery_parameters,
|
|
|
**config) as app:
|
|
|
if not use_celery_app_trap:
|
|
|
app.set_default()
|
|
@@ -119,9 +126,21 @@ def celery_config():
|
|
|
return {}
|
|
|
|
|
|
|
|
|
+@pytest.fixture(scope='session')
|
|
|
+def celery_parameters():
|
|
|
+ # type: () -> Mapping[str, Any]
|
|
|
+ """Redefine this fixture to change the init parameters of test Celery app.
|
|
|
+
|
|
|
+ The dict returned by your fixture will then be used
|
|
|
+ as parameters when instantiating :class:`~celery.Celery`.
|
|
|
+ """
|
|
|
+ return {}
|
|
|
+
|
|
|
+
|
|
|
@pytest.fixture()
|
|
|
def celery_app(request,
|
|
|
celery_config,
|
|
|
+ celery_parameters,
|
|
|
celery_enable_logging,
|
|
|
use_celery_app_trap):
|
|
|
"""Fixture creating a Celery application instance."""
|
|
@@ -130,6 +149,7 @@ def celery_app(request,
|
|
|
with _create_app(request,
|
|
|
enable_logging=celery_enable_logging,
|
|
|
use_trap=use_celery_app_trap,
|
|
|
+ parameters=celery_parameters,
|
|
|
**config) as app:
|
|
|
yield app
|
|
|
|