From 416ca3fcca11f99eab7bb4823037495f58f4132e Mon Sep 17 00:00:00 2001 From: Carlton Gibson Date: Thu, 9 Aug 2018 15:43:26 +0200 Subject: [PATCH] Note dependency on uritemplate. --- rest_framework/schemas/inspectors.py | 2 ++ tests/schemas/test_openapi.py | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/rest_framework/schemas/inspectors.py b/rest_framework/schemas/inspectors.py index 503871849..4c2fc10ee 100644 --- a/rest_framework/schemas/inspectors.py +++ b/rest_framework/schemas/inspectors.py @@ -511,6 +511,8 @@ class OpenAPIAutoSchema(ViewInspector): """ Return a list of parameters from templated path variables. """ + assert uritemplate, '`uritemplate` must be installed for OpenAPI schema support.' + model = getattr(getattr(self.view, 'queryset', None), 'model', None) parameters = [] diff --git a/tests/schemas/test_openapi.py b/tests/schemas/test_openapi.py index 27cf921ed..eb98330a2 100644 --- a/tests/schemas/test_openapi.py +++ b/tests/schemas/test_openapi.py @@ -1,6 +1,9 @@ +import unittest + from django.conf.urls import url from django.test import RequestFactory, TestCase, override_settings +from rest_framework.compat import uritemplate from rest_framework.request import Request from rest_framework.schemas.generators import OpenAPISchemaGenerator from rest_framework.schemas.inspectors import OpenAPIAutoSchema @@ -20,6 +23,7 @@ def create_view(view_cls, method, request): return view +@unittest.skipUnless(uritemplate, 'uritemplate is not installed') class TestOperationIntrospection(TestCase): def test_path_without_parameters(self): @@ -61,6 +65,7 @@ class TestOperationIntrospection(TestCase): } +@unittest.skipUnless(uritemplate, 'uritemplate is not installed') @override_settings(REST_FRAMEWORK={'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.inspectors.OpenAPIAutoSchema'}) class TestGenerator(TestCase):