mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-08-04 04:20:12 +03:00
Add failing test for #5395
This commit is contained in:
parent
e6193cfd9e
commit
5d10c2eb64
|
@ -26,6 +26,9 @@ def pytest_configure():
|
|||
{
|
||||
'BACKEND': 'django.template.backends.django.DjangoTemplates',
|
||||
'APP_DIRS': True,
|
||||
'OPTIONS': {
|
||||
"debug": True, # We want template errors to raise
|
||||
}
|
||||
},
|
||||
],
|
||||
MIDDLEWARE=MIDDLEWARE,
|
||||
|
|
|
@ -4,6 +4,7 @@ from __future__ import unicode_literals
|
|||
import re
|
||||
from collections import MutableMapping, OrderedDict
|
||||
|
||||
import coreapi
|
||||
import pytest
|
||||
from django.conf.urls import include, url
|
||||
from django.core.cache import cache
|
||||
|
@ -16,7 +17,7 @@ from django.utils.translation import ugettext_lazy as _
|
|||
|
||||
from rest_framework import permissions, serializers, status
|
||||
from rest_framework.renderers import (
|
||||
AdminRenderer, BaseRenderer, BrowsableAPIRenderer,
|
||||
AdminRenderer, BaseRenderer, BrowsableAPIRenderer, DocumentationRenderer,
|
||||
HTMLFormRenderer, JSONRenderer, StaticHTMLRenderer
|
||||
)
|
||||
from rest_framework.request import Request
|
||||
|
@ -706,3 +707,32 @@ class AdminRendererTests(TestCase):
|
|||
response = view(request)
|
||||
response.render()
|
||||
self.assertInHTML('<tr><th>Iteritems</th><td>a string</td></tr>', str(response.content))
|
||||
|
||||
|
||||
class TestDocumentationRenderer(TestCase):
|
||||
|
||||
def test_document_with_link_named_data(self):
|
||||
"""
|
||||
Ref #5395: Doc's `document.data` would fail with a Link named "data".
|
||||
As per #4972, use templatetag instead.
|
||||
"""
|
||||
document = coreapi.Document(
|
||||
title='Data Endpoint API',
|
||||
url='https://api.example.org/',
|
||||
content={
|
||||
'data': coreapi.Link(
|
||||
url='/data/',
|
||||
action='get',
|
||||
fields=[],
|
||||
description='Return data.'
|
||||
)
|
||||
}
|
||||
)
|
||||
|
||||
factory = APIRequestFactory()
|
||||
request = factory.get('/')
|
||||
|
||||
renderer = DocumentationRenderer()
|
||||
|
||||
html = renderer.render(document, accepted_media_type="text/html", renderer_context={"request": request})
|
||||
assert '<h1>Data Endpoint API</h1>' in html
|
||||
|
|
|
@ -1,4 +1,11 @@
|
|||
"""
|
||||
Blank URLConf just to keep the test suite happy
|
||||
URLConf for test suite.
|
||||
|
||||
We need only the docs urls for DocumentationRenderer tests.
|
||||
"""
|
||||
urlpatterns = []
|
||||
from django.conf.urls import url
|
||||
from rest_framework.documentation import include_docs_urls
|
||||
|
||||
urlpatterns = [
|
||||
url(r'^docs/', include_docs_urls(title='Test Suite API')),
|
||||
]
|
||||
|
|
Loading…
Reference in New Issue
Block a user