From 29e228d2ddc3f42d63c3a97d1205271605c5ca7f Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Thu, 9 Jun 2016 14:07:17 +0100 Subject: [PATCH] Fail gracefully if attempting to use schemas without coreapi being installed. --- rest_framework/renderers.py | 3 +++ rest_framework/routers.py | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/rest_framework/renderers.py b/rest_framework/renderers.py index 511f5d474..c4f472552 100644 --- a/rest_framework/renderers.py +++ b/rest_framework/renderers.py @@ -792,6 +792,9 @@ class CoreJSONRenderer(BaseRenderer): charset = None format = 'corejson' + def __init__(self): + assert coreapi, 'Using CoreJSONRenderer, but `coreapi` is not installed.' + def render(self, data, media_type=None, renderer_context=None): indent = bool(renderer_context.get('indent', 0)) codec = coreapi.codecs.CoreJSONCodec() diff --git a/rest_framework/routers.py b/rest_framework/routers.py index 7ef047bed..f3e4bc4ea 100644 --- a/rest_framework/routers.py +++ b/rest_framework/routers.py @@ -335,7 +335,7 @@ class DefaultRouter(SimpleRouter): view_renderers = api_settings.DEFAULT_RENDERER_CLASSES if self.schema_title: - assert coreapi is not None, '`coreapi` must be installed for schema support.' + assert coreapi, '`coreapi` must be installed for schema support.' content = self.get_links() schema = coreapi.Document(title=self.schema_title, content=content) view_renderers += [renderers.CoreJSONRenderer]