Skip to content

Commit fdd1439

Browse files
committed
Add --skip-checks flag to bypass django core checks
1 parent 914efb0 commit fdd1439

3 files changed

Lines changed: 21 additions & 2 deletions

File tree

celery/bin/celery.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,9 +131,15 @@ def convert(self, value, param, ctx):
131131
cls=CeleryOption,
132132
is_flag=True,
133133
help_group="Global Options")
134+
@click.option('--skip-checks',
135+
envvar='SKIP_CHECKS',
136+
cls=CeleryOption,
137+
is_flag=True,
138+
help_group="Global Options",
139+
help="Skip Django core checks on startup.")
134140
@click.pass_context
135141
def celery(ctx, app, broker, result_backend, loader, config, workdir,
136-
no_color, quiet, version):
142+
no_color, quiet, version, skip_checks):
137143
"""Celery command entrypoint."""
138144
if version:
139145
click.echo(VERSION_BANNER)
@@ -151,6 +157,8 @@ def celery(ctx, app, broker, result_backend, loader, config, workdir,
151157
os.environ['CELERY_RESULT_BACKEND'] = result_backend
152158
if config:
153159
os.environ['CELERY_CONFIG_MODULE'] = config
160+
if skip_checks:
161+
os.environ['CELERY_SKIP_CHECKS'] = skip_checks
154162
ctx.obj = CLIContext(app=app, no_color=no_color, workdir=workdir,
155163
quiet=quiet)
156164

celery/fixups/django.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,8 @@ def django_setup(self) -> None:
133133
def validate_models(self) -> None:
134134
from django.core.checks import run_checks
135135
self.django_setup()
136-
run_checks()
136+
if not os.environ.get('CELERY_SKIP_CHECKS'):
137+
run_checks()
137138

138139
def install(self) -> "DjangoWorkerFixup":
139140
signals.beat_embedded_init.connect(self.close_database)

t/unit/fixups/test_django.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -263,10 +263,20 @@ def test_validate_models(self, patching, module):
263263
f.django_setup = Mock(name='django.setup')
264264
patching.modules('django.core.checks')
265265
from django.core.checks import run_checks
266+
266267
f.validate_models()
267268
f.django_setup.assert_called_with()
268269
run_checks.assert_called_with()
269270

271+
# test --skip-checks flag
272+
f.django_setup.reset_mock()
273+
run_checks.reset_mock()
274+
275+
patching.setenv('CELERY_SKIP_CHECKS', True)
276+
f.validate_models()
277+
f.django_setup.assert_called_with()
278+
run_checks.assert_not_called()
279+
270280
def test_django_setup(self, patching):
271281
patching('celery.fixups.django.symbol_by_name')
272282
patching('celery.fixups.django.import_module')

0 commit comments

Comments
 (0)