diff options
Diffstat (limited to 'tests/admin_docs/tests.py')
| -rw-r--r-- | tests/admin_docs/tests.py | 44 |
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) |
