add tests for managemails.admin
This commit is contained in:
parent
b4a5e6c86b
commit
3407a5ed24
1 changed files with 189 additions and 0 deletions
189
gnuviechadmin/managemails/tests/test_admin.py
Normal file
189
gnuviechadmin/managemails/tests/test_admin.py
Normal file
|
@ -0,0 +1,189 @@
|
|||
from django import forms
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.test import TestCase
|
||||
from django.test.utils import override_settings
|
||||
from django.utils.html import format_html
|
||||
from django.utils.translation import ugettext as _
|
||||
|
||||
from django.contrib.admin import AdminSite
|
||||
|
||||
from mock import Mock
|
||||
|
||||
from osusers.models import User
|
||||
|
||||
from managemails.admin import (
|
||||
ActivationChangeMixin,
|
||||
MailboxAdmin,
|
||||
MailboxChangeForm,
|
||||
MailboxCreationForm,
|
||||
PASSWORD_MISMATCH_ERROR,
|
||||
ReadOnlyPasswordHashField,
|
||||
ReadOnlyPasswordHashWidget,
|
||||
)
|
||||
from managemails.models import (
|
||||
Mailbox,
|
||||
)
|
||||
|
||||
|
||||
class TestReadOnlyPasswordHashWidget(TestCase):
|
||||
def test_render(self):
|
||||
widget = ReadOnlyPasswordHashWidget()
|
||||
rendered = widget.render('password', 'secret', {'class': 'test'})
|
||||
self.assertEqual(
|
||||
rendered,
|
||||
format_html(
|
||||
'<div class="test">{0}</div>',
|
||||
format_html('<strong>{0}</strong>: secret ',
|
||||
_('Hash'))
|
||||
))
|
||||
|
||||
|
||||
class TestReadOnlyPasswordHashField(TestCase):
|
||||
def test___init__(self):
|
||||
field = ReadOnlyPasswordHashField()
|
||||
self.assertFalse(field.required)
|
||||
|
||||
def test_bound_data(self):
|
||||
field = ReadOnlyPasswordHashField()
|
||||
self.assertEqual(field.bound_data('new', 'old'), 'old')
|
||||
|
||||
def test__has_changed(self):
|
||||
field = ReadOnlyPasswordHashField()
|
||||
self.assertFalse(field._has_changed('new', 'old'))
|
||||
|
||||
|
||||
class TestMailboxCreationForm(TestCase):
|
||||
def test_clean_password2_same(self):
|
||||
form = MailboxCreationForm()
|
||||
form.cleaned_data = {'password1': 'secret', 'password2': 'secret'}
|
||||
self.assertEqual(form.clean_password2(), 'secret')
|
||||
|
||||
def test_clean_password2_empty(self):
|
||||
form = MailboxCreationForm()
|
||||
form.cleaned_data = {}
|
||||
self.assertIsNone(form.clean_password2())
|
||||
|
||||
def test_clean_password2_mismatch(self):
|
||||
form = MailboxCreationForm()
|
||||
form.cleaned_data = {'password1': 'secretx', 'password2': 'secrety'}
|
||||
with self.assertRaises(forms.ValidationError) as cm:
|
||||
form.clean_password2()
|
||||
self.assertEqual(cm.exception.message, PASSWORD_MISMATCH_ERROR)
|
||||
|
||||
@override_settings(
|
||||
CELERY_ALWAYS_EAGER=True,
|
||||
CELERY_CACHE_BACKEND='memory',
|
||||
BROKER_BACKEND='memory'
|
||||
)
|
||||
def test_save_commit(self):
|
||||
user = User.objects.create_user()
|
||||
form = MailboxCreationForm(data={
|
||||
'osuser': user.uid,
|
||||
'password1': 'secret',
|
||||
'password2': 'secret',
|
||||
})
|
||||
mailbox = form.save()
|
||||
self.assertIsNotNone(mailbox)
|
||||
self.assertEqual(
|
||||
len(Mailbox.objects.filter(osuser=user)), 1)
|
||||
|
||||
@override_settings(
|
||||
CELERY_ALWAYS_EAGER=True,
|
||||
CELERY_CACHE_BACKEND='memory',
|
||||
BROKER_BACKEND='memory'
|
||||
)
|
||||
def test_save_no_commit(self):
|
||||
user = User.objects.create_user()
|
||||
form = MailboxCreationForm(data={
|
||||
'osuser': user.uid,
|
||||
'password1': 'secret',
|
||||
'password2': 'secret',
|
||||
})
|
||||
mailbox = form.save(commit=False)
|
||||
self.assertIsNotNone(mailbox)
|
||||
self.assertEqual(
|
||||
len(Mailbox.objects.filter(osuser=user)), 0)
|
||||
|
||||
|
||||
class TestMailboxChangeForm(TestCase):
|
||||
@override_settings(
|
||||
CELERY_ALWAYS_EAGER=True,
|
||||
CELERY_CACHE_BACKEND='memory',
|
||||
BROKER_BACKEND='memory'
|
||||
)
|
||||
def test_clean_password(self):
|
||||
mailbox = Mailbox(username='test', osuser=User.objects.create_user())
|
||||
mailbox.set_password('test')
|
||||
mailbox.save()
|
||||
form = MailboxChangeForm(instance=mailbox, data={'password': 'blub'})
|
||||
self.assertEqual(form.clean_password(), mailbox.password)
|
||||
|
||||
|
||||
class TestActivationChangeMixin(TestCase):
|
||||
def test_activate(self):
|
||||
querysetmock = Mock()
|
||||
activationchange = ActivationChangeMixin()
|
||||
activationchange.activate(Mock(), querysetmock)
|
||||
querysetmock.update.called_with(active=True)
|
||||
|
||||
def test_deactivate(self):
|
||||
querysetmock = Mock()
|
||||
activationchange = ActivationChangeMixin()
|
||||
activationchange.deactivate(Mock(), querysetmock)
|
||||
querysetmock.update.called_with(active=False)
|
||||
|
||||
|
||||
class TestMailBoxAdmin(TestCase):
|
||||
def setUp(self):
|
||||
site = AdminSite()
|
||||
self.mbadmin = MailboxAdmin(Mailbox, site)
|
||||
|
||||
def test_get_fieldsets_without_object(self):
|
||||
self.assertEqual(
|
||||
self.mbadmin.get_fieldsets(Mock()),
|
||||
self.mbadmin.add_fieldsets)
|
||||
|
||||
@override_settings(
|
||||
CELERY_ALWAYS_EAGER=True,
|
||||
CELERY_CACHE_BACKEND='memory',
|
||||
BROKER_BACKEND='memory'
|
||||
)
|
||||
def test_get_fieldsets_with_object(self):
|
||||
mailbox = Mailbox(username='test', osuser=User.objects.create_user())
|
||||
mailbox.set_password('test')
|
||||
mailbox.save()
|
||||
self.assertEqual(
|
||||
self.mbadmin.get_fieldsets(Mock(), mailbox),
|
||||
self.mbadmin.fieldsets)
|
||||
|
||||
def test_get_form_without_object(self):
|
||||
form = self.mbadmin.get_form(Mock)
|
||||
self.assertEqual(
|
||||
form.Meta.fields,
|
||||
['username', 'password1', 'password2']
|
||||
)
|
||||
|
||||
@override_settings(
|
||||
CELERY_ALWAYS_EAGER=True,
|
||||
CELERY_CACHE_BACKEND='memory',
|
||||
BROKER_BACKEND='memory'
|
||||
)
|
||||
def test_get_form_with_object(self):
|
||||
mailbox = Mailbox(username='test', osuser=User.objects.create_user())
|
||||
mailbox.set_password('test')
|
||||
mailbox.save()
|
||||
form = self.mbadmin.get_form(Mock, mailbox)
|
||||
self.assertEqual(
|
||||
form.Meta.fields,
|
||||
['username', 'password', 'osuser', 'active']
|
||||
)
|
||||
|
||||
def test_admin_for_mailbox(self):
|
||||
admin_url = reverse('admin:managemails_mailaddress_changelist')
|
||||
self.assertIsNotNone(admin_url)
|
||||
|
||||
|
||||
class TestMailAddressAdmin(TestCase):
|
||||
def test_admin_for_mailaddress(self):
|
||||
admin_url = reverse('admin:managemails_mailaddress_changelist')
|
||||
self.assertIsNotNone(admin_url)
|
Loading…
Reference in a new issue