summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRussell Keith-Magee <russell@keith-magee.com>2010-08-14 13:41:56 +0000
committerRussell Keith-Magee <russell@keith-magee.com>2010-08-14 13:41:56 +0000
commit7e52bb2bc3ea6b3c32866d948268c8681c3e12b3 (patch)
tree2ba2bb3c179bbce824daa3b21e22db08e391440b
parent05f5217551f203711c7c00d509d8554d8829fee8 (diff)
Fixed #13796 -- Ensure that builtin tags and filters are included in admin documentation views.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@13588 bcc190cf-cafb-0310-a4f2-bffc1f526a37
-rw-r--r--django/contrib/admindocs/views.py8
-rw-r--r--tests/regressiontests/admin_views/tests.py37
-rwxr-xr-xtests/runtests.py1
3 files changed, 44 insertions, 2 deletions
diff --git a/django/contrib/admindocs/views.py b/django/contrib/admindocs/views.py
index e154c9299a..5bfa0f7184 100644
--- a/django/contrib/admindocs/views.py
+++ b/django/contrib/admindocs/views.py
@@ -54,7 +54,9 @@ def template_tag_index(request):
load_all_installed_template_libraries()
tags = []
- for module_name, library in template.libraries.items():
+ app_libs = template.libraries.items()
+ builtin_libs = [(None, lib) for lib in template.builtins]
+ for module_name, library in builtin_libs + app_libs:
for tag_name, tag_func in library.tags.items():
title, body, metadata = utils.parse_docstring(tag_func.__doc__)
if title:
@@ -87,7 +89,9 @@ def template_filter_index(request):
load_all_installed_template_libraries()
filters = []
- for module_name, library in template.libraries.items():
+ app_libs = template.libraries.items()
+ builtin_libs = [(None, lib) for lib in template.builtins]
+ for module_name, library in builtin_libs + app_libs:
for filter_name, filter_func in library.filters.items():
title, body, metadata = utils.parse_docstring(filter_func.__doc__)
if title:
diff --git a/tests/regressiontests/admin_views/tests.py b/tests/regressiontests/admin_views/tests.py
index 41aade0561..bb787be638 100644
--- a/tests/regressiontests/admin_views/tests.py
+++ b/tests/regressiontests/admin_views/tests.py
@@ -2170,3 +2170,40 @@ class UserAdminTest(TestCase):
self.assertRedirects(response, '/test_admin/admin/auth/user/add/')
self.assertEquals(User.objects.count(), user_count + 1)
self.assertNotEquals(new_user.password, UNUSABLE_PASSWORD)
+
+class AdminDocsTest(TestCase):
+ fixtures = ['admin-views-users.xml']
+
+ def setUp(self):
+ self.client.login(username='super', password='secret')
+
+ def tearDown(self):
+ self.client.logout()
+
+ def test_tags(self):
+ response = self.client.get('/test_admin/admin/doc/tags/')
+
+ # The builtin tag group exists
+ self.assertContains(response, "<h2>Built-in tags</h2>", count=2)
+
+ # A builtin tag exists in both the index and detail
+ self.assertContains(response, '<h3 id="autoescape">autoescape</h3>')
+ self.assertContains(response, '<li><a href="#autoescape">autoescape</a></li>')
+
+ # An app tag exists in both the index and detail
+ # The builtin tag group exists
+ self.assertContains(response, "<h2>admin_list</h2>", count=2)
+
+ # A builtin tag exists in both the index and detail
+ self.assertContains(response, '<h3 id="autoescape">autoescape</h3>')
+ self.assertContains(response, '<li><a href="#admin_actions">admin_actions</a></li>')
+
+ def test_filters(self):
+ response = self.client.get('/test_admin/admin/doc/filters/')
+
+ # The builtin filter group exists
+ self.assertContains(response, "<h2>Built-in filters</h2>", count=2)
+
+ # A builtin filter exists in both the index and detail
+ self.assertContains(response, '<h3 id="add">add</h3>')
+ self.assertContains(response, '<li><a href="#add">add</a></li>')
diff --git a/tests/runtests.py b/tests/runtests.py
index 4d7c55bae0..83f141d3d2 100755
--- a/tests/runtests.py
+++ b/tests/runtests.py
@@ -27,6 +27,7 @@ ALWAYS_INSTALLED_APPS = [
'django.contrib.messages',
'django.contrib.comments',
'django.contrib.admin',
+ 'django.contrib.admindocs',
]
def get_test_models():