Updates
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
from django.core.checks import Error, Warning, register
|
||||
|
||||
|
||||
@register(deploy=True)
|
||||
def schema_check(app_configs, **kwargs):
|
||||
""" Perform dummy generation and emit warnings/errors as part of Django's check framework """
|
||||
from drf_spectacular.drainage import GENERATOR_STATS
|
||||
from drf_spectacular.settings import spectacular_settings
|
||||
|
||||
if not spectacular_settings.ENABLE_DJANGO_DEPLOY_CHECK:
|
||||
return []
|
||||
|
||||
errors = []
|
||||
try:
|
||||
with GENERATOR_STATS.silence():
|
||||
spectacular_settings.DEFAULT_GENERATOR_CLASS().get_schema(request=None, public=True)
|
||||
except Exception as exc:
|
||||
errors.append(
|
||||
Error(f'Schema generation threw exception "{exc}"', id='drf_spectacular.E001')
|
||||
)
|
||||
if GENERATOR_STATS:
|
||||
for w in GENERATOR_STATS._warn_cache:
|
||||
errors.append(Warning(w, id='drf_spectacular.W001'))
|
||||
for e in GENERATOR_STATS._error_cache:
|
||||
errors.append(Warning(e, id='drf_spectacular.W002'))
|
||||
return errors
|
||||
Reference in New Issue
Block a user