mirror of
https://github.com/jazzband/django-constance.git
synced 2026-03-16 22:40:24 +00:00
Drop python 2.6, 3.2 Drop Django 1.4, 1.5, 1.6 Remove models.py under constance and move to an appconfig imported file.
53 lines
2.1 KiB
Python
53 lines
2.1 KiB
Python
from django.contrib import admin
|
|
from django.contrib.auth.models import User, Permission
|
|
from django.core.exceptions import PermissionDenied
|
|
from django.test import TestCase, RequestFactory
|
|
|
|
from constance.admin import settings, Config
|
|
|
|
|
|
class TestAdmin(TestCase):
|
|
model = Config
|
|
|
|
def setUp(self):
|
|
super(TestAdmin, self).setUp()
|
|
self.rf = RequestFactory()
|
|
self.superuser = User.objects.create_superuser('admin', 'nimda', 'a@a.cz')
|
|
self.normaluser = User.objects.create_user('normal', 'nimda', 'b@b.cz')
|
|
self.normaluser.is_staff = True
|
|
self.normaluser.save()
|
|
self.options = admin.site._registry[self.model]
|
|
|
|
def test_changelist(self):
|
|
self.client.login(username='admin', password='nimda')
|
|
request = self.rf.get('/admin/constance/config/')
|
|
request.user = self.superuser
|
|
response = self.options.changelist_view(request, {})
|
|
self.assertEqual(response.status_code, 200)
|
|
|
|
def test_custom_auth(self):
|
|
settings.SUPERUSER_ONLY = False
|
|
self.client.login(username='normal', password='nimda')
|
|
request = self.rf.get('/admin/constance/config/')
|
|
request.user = self.normaluser
|
|
self.assertRaises(PermissionDenied,
|
|
self.options.changelist_view,
|
|
request, {})
|
|
self.assertFalse(request.user.has_perm('constance.change_config'))
|
|
|
|
# reload user to reset permission cache
|
|
request = self.rf.get('/admin/constance/config/')
|
|
request.user = User.objects.get(pk=self.normaluser.pk)
|
|
|
|
request.user.user_permissions.add(Permission.objects.get(codename='change_config'))
|
|
self.assertTrue(request.user.has_perm('constance.change_config'))
|
|
|
|
response = self.options.changelist_view(request, {})
|
|
self.assertEqual(response.status_code, 200)
|
|
|
|
def test_str(self):
|
|
from django.utils import six
|
|
from django.contrib.contenttypes.models import ContentType
|
|
ct = ContentType.objects.get(app_label='constance', model='config')
|
|
|
|
self.assertEqual(six.text_type(ct), 'config')
|