summaryrefslogtreecommitdiff
path: root/tests/admin_docs/tests.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/admin_docs/tests.py')
-rw-r--r--tests/admin_docs/tests.py44
1 files changed, 44 insertions, 0 deletions
diff --git a/tests/admin_docs/tests.py b/tests/admin_docs/tests.py
index aeb527c7b9..3ae3a42843 100644
--- a/tests/admin_docs/tests.py
+++ b/tests/admin_docs/tests.py
@@ -1,3 +1,11 @@
+import unittest
+
+try:
+ import docutils
+except ImportError:
+ docutils = None
+
+from django.contrib.admindocs import utils
from django.contrib.auth.models import User
from django.test import TestCase
from django.test.utils import override_settings
@@ -43,3 +51,39 @@ class XViewMiddlewareTest(TestCase):
user.save()
response = self.client.head('/xview/class/')
self.assertFalse('X-View' in response)
+
+
+@unittest.skipUnless(docutils, "no docutils installed.")
+class DefaultRoleTest(TestCase):
+ urls = 'admin_docs.urls'
+
+ def test_parse_rst(self):
+ """
+ Tests that ``django.contrib.admindocs.utils.parse_rst`` uses
+ ``cmsreference`` as the default role.
+ """
+ markup = ('<p><a class="reference external" href="/admindocs/%s">'
+ 'title</a></p>\n')
+ self.assertEqual(utils.parse_rst('`title`', 'model'),
+ markup % 'models/title/')
+ self.assertEqual(utils.parse_rst('`title`', 'view'),
+ markup % 'views/title/')
+ self.assertEqual(utils.parse_rst('`title`', 'template'),
+ markup % 'templates/title/')
+ self.assertEqual(utils.parse_rst('`title`', 'filter'),
+ markup % 'filters/#title')
+ self.assertEqual(utils.parse_rst('`title`', 'tag'),
+ markup % 'tags/#title')
+
+ def test_publish_parts(self):
+ """
+ Tests that Django hasn't broken the default role for interpreted text
+ when ``publish_parts`` is used directly, by setting it to
+ ``cmsreference``. See #6681.
+ """
+ self.assertNotEqual(docutils.parsers.rst.roles.DEFAULT_INTERPRETED_ROLE,
+ 'cmsreference')
+ source = 'reST, `interpreted text`, default role.'
+ markup = '<p>reST, <cite>interpreted text</cite>, default role.</p>\n'
+ parts = docutils.core.publish_parts(source=source, writer_name="html4css1")
+ self.assertEqual(parts['fragment'], markup)