summaryrefslogtreecommitdiff
path: root/tests/admin_views/test_adminsite.py
diff options
context:
space:
mode:
authorRiccardo Magliocchetti <riccardo.magliocchetti@gmail.com>2015-03-30 12:54:25 +0200
committerTim Graham <timograham@gmail.com>2015-05-11 12:07:36 -0400
commitbd53db5eab05099ae371348529c6428e0da95c6a (patch)
tree3920514c719a6cacc2ba6a8dc7c6d441735bde30 /tests/admin_views/test_adminsite.py
parentadc57632bc26cc8fe42bdb6aff463f883214980a (diff)
Fixed #24553 -- Added the list of available applications to AdminSite.each_context()
Diffstat (limited to 'tests/admin_views/test_adminsite.py')
-rw-r--r--tests/admin_views/test_adminsite.py82
1 files changed, 82 insertions, 0 deletions
diff --git a/tests/admin_views/test_adminsite.py b/tests/admin_views/test_adminsite.py
new file mode 100644
index 0000000000..6e0fce57d8
--- /dev/null
+++ b/tests/admin_views/test_adminsite.py
@@ -0,0 +1,82 @@
+from __future__ import unicode_literals
+
+import datetime
+
+from django.conf.urls import include, url
+from django.contrib import admin
+from django.contrib.auth.models import User
+from django.core.urlresolvers import reverse
+from django.test import TestCase, override_settings
+from django.test.client import RequestFactory
+
+from .models import Article
+
+site = admin.AdminSite(name="test_adminsite")
+site.register(User)
+site.register(Article)
+
+urlpatterns = [
+ url(r'^test_admin/admin/', include(site.urls)),
+]
+
+
+@override_settings(
+ PASSWORD_HASHERS=['django.contrib.auth.hashers.SHA1PasswordHasher'],
+ ROOT_URLCONF="admin_views.test_adminsite",
+)
+class SiteEachContextTest(TestCase):
+ """
+ Check each_context contains the documented variables and that available_apps context
+ variable structure is the expected one.
+ """
+ @classmethod
+ def setUpTestData(cls):
+ cls.u1 = User.objects.create(
+ id=100, password='sha1$995a3$6011485ea3834267d719b4c801409b8b1ddd0158',
+ last_login=datetime.datetime(2007, 5, 30, 13, 20, 10), is_superuser=True, username='super',
+ first_name='Super', last_name='User', email='super@example.com',
+ is_staff=True, is_active=True, date_joined=datetime.datetime(2007, 5, 30, 13, 20, 10),
+ )
+
+ def setUp(self):
+ factory = RequestFactory()
+ request = factory.get(reverse('test_adminsite:index'))
+ request.user = self.u1
+ self.ctx = site.each_context(request)
+
+ def test_each_context(self):
+ ctx = self.ctx
+ self.assertEqual(ctx['site_header'], 'Django administration')
+ self.assertEqual(ctx['site_title'], 'Django site admin')
+ self.assertEqual(ctx['site_url'], '/')
+ self.assertEqual(ctx['has_permission'], True)
+
+ def test_available_apps(self):
+ ctx = self.ctx
+ apps = ctx['available_apps']
+ # we have registered two models from two different apps
+ self.assertEqual(len(apps), 2)
+
+ # admin_views.Article
+ admin_views = apps[0]
+ self.assertEqual(admin_views['app_label'], 'admin_views')
+ self.assertEqual(len(admin_views['models']), 1)
+ self.assertEqual(admin_views['models'][0]['object_name'], 'Article')
+
+ # auth.User
+ auth = apps[1]
+ self.assertEqual(auth['app_label'], 'auth')
+ self.assertEqual(len(auth['models']), 1)
+ user = auth['models'][0]
+ self.assertEqual(user['object_name'], 'User')
+
+ self.assertEqual(auth['app_url'], '/test_admin/admin/auth/')
+ self.assertEqual(auth['has_module_perms'], True)
+
+ self.assertIn('perms', user)
+ self.assertEqual(user['perms']['add'], True)
+ self.assertEqual(user['perms']['change'], True)
+ self.assertEqual(user['perms']['delete'], True)
+ self.assertEqual(user['admin_url'], '/test_admin/admin/auth/user/')
+ self.assertEqual(user['add_url'], '/test_admin/admin/auth/user/add/')
+ self.assertEqual(user['name'], 'Users')