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',
|
'BACKEND': 'django.template.backends.django.DjangoTemplates',
|
||||||
'APP_DIRS': True,
|
'APP_DIRS': True,
|
||||||
|
'OPTIONS': {
|
||||||
|
"debug": True, # We want template errors to raise
|
||||||
|
}
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
MIDDLEWARE=MIDDLEWARE,
|
MIDDLEWARE=MIDDLEWARE,
|
||||||
|
|
|
@ -4,6 +4,7 @@ from __future__ import unicode_literals
|
||||||
import re
|
import re
|
||||||
from collections import MutableMapping, OrderedDict
|
from collections import MutableMapping, OrderedDict
|
||||||
|
|
||||||
|
import coreapi
|
||||||
import pytest
|
import pytest
|
||||||
from django.conf.urls import include, url
|
from django.conf.urls import include, url
|
||||||
from django.core.cache import cache
|
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 import permissions, serializers, status
|
||||||
from rest_framework.renderers import (
|
from rest_framework.renderers import (
|
||||||
AdminRenderer, BaseRenderer, BrowsableAPIRenderer,
|
AdminRenderer, BaseRenderer, BrowsableAPIRenderer, DocumentationRenderer,
|
||||||
HTMLFormRenderer, JSONRenderer, StaticHTMLRenderer
|
HTMLFormRenderer, JSONRenderer, StaticHTMLRenderer
|
||||||
)
|
)
|
||||||
from rest_framework.request import Request
|
from rest_framework.request import Request
|
||||||
|
@ -706,3 +707,32 @@ class AdminRendererTests(TestCase):
|
||||||
response = view(request)
|
response = view(request)
|
||||||
response.render()
|
response.render()
|
||||||
self.assertInHTML('<tr><th>Iteritems</th><td>a string</td></tr>', str(response.content))
|
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