Fix tests for Python 3

- drop Python 2 __future__ imports
- fix tests to handle new Django and Python 3 module names
- reformat changed files with black
This commit is contained in:
Jan Dittberner 2019-01-30 21:27:25 +01:00
parent ddec6b4184
commit 3d18392b67
32 changed files with 2707 additions and 2675 deletions

View file

@ -1,14 +1,14 @@
from django import forms
from django.core.urlresolvers import reverse
from django.test import TestCase
from django.test.utils import override_settings
from django.urls import reverse
from django.utils.html import format_html
from django.utils.translation import ugettext as _
from django.contrib.admin import AdminSite
from django.contrib.auth import get_user_model
from mock import Mock
from unittest.mock import Mock
from osusers.models import User
@ -21,9 +21,7 @@ from managemails.admin import (
ReadOnlyPasswordHashField,
ReadOnlyPasswordHashWidget,
)
from managemails.models import (
Mailbox,
)
from managemails.models import Mailbox
Customer = get_user_model()
@ -31,14 +29,14 @@ Customer = get_user_model()
class ReadOnlyPasswordHashWidgetTest(TestCase):
def test_render(self):
widget = ReadOnlyPasswordHashWidget()
rendered = widget.render('password', 'secret', {'class': 'test'})
rendered = widget.render("password", "secret", {"class": "test"})
self.assertEqual(
rendered,
format_html(
'<div class="test">{0}</div>',
format_html('<strong>{0}</strong>: secret ',
_('Hash'))
))
format_html("<strong>{0}</strong>: secret ", _("Hash")),
),
)
class ReadOnlyPasswordHashFieldTest(TestCase):
@ -48,24 +46,24 @@ class ReadOnlyPasswordHashFieldTest(TestCase):
def test_bound_data(self):
field = ReadOnlyPasswordHashField()
self.assertEqual(field.bound_data('new', 'old'), 'old')
self.assertEqual(field.bound_data("new", "old"), "old")
def test__has_changed(self):
field = ReadOnlyPasswordHashField()
self.assertFalse(field.has_changed('new', 'old'))
self.assertFalse(field.has_changed("new", "old"))
class CustomerTestCase(TestCase):
def setUp(self):
super(CustomerTestCase, self).setUp()
self.customer = Customer.objects.create(username='test')
self.customer = Customer.objects.create(username="test")
class MailboxCreationFormTest(CustomerTestCase):
def test_clean_password2_same(self):
form = MailboxCreationForm()
form.cleaned_data = {'password1': 'secret', 'password2': 'secret'}
self.assertEqual(form.clean_password2(), 'secret')
form.cleaned_data = {"password1": "secret", "password2": "secret"}
self.assertEqual(form.clean_password2(), "secret")
def test_clean_password2_empty(self):
form = MailboxCreationForm()
@ -74,59 +72,47 @@ class MailboxCreationFormTest(CustomerTestCase):
def test_clean_password2_mismatch(self):
form = MailboxCreationForm()
form.cleaned_data = {'password1': 'secretx', 'password2': 'secrety'}
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'
CELERY_ALWAYS_EAGER=True, CELERY_CACHE_BACKEND="memory", BROKER_BACKEND="memory"
)
def test_save_commit(self):
user = User.objects.create_user(customer=self.customer)
form = MailboxCreationForm(data={
'osuser': user.uid,
'password1': 'secret',
'password2': 'secret',
})
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)
self.assertEqual(len(Mailbox.objects.filter(osuser=user)), 1)
@override_settings(
CELERY_ALWAYS_EAGER=True,
CELERY_CACHE_BACKEND='memory',
BROKER_BACKEND='memory'
CELERY_ALWAYS_EAGER=True, CELERY_CACHE_BACKEND="memory", BROKER_BACKEND="memory"
)
def test_save_no_commit(self):
user = User.objects.create_user(customer=self.customer)
form = MailboxCreationForm(data={
'osuser': user.uid,
'password1': 'secret',
'password2': 'secret',
})
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)
self.assertEqual(len(Mailbox.objects.filter(osuser=user)), 0)
class MailboxChangeFormTest(CustomerTestCase):
@override_settings(
CELERY_ALWAYS_EAGER=True,
CELERY_CACHE_BACKEND='memory',
BROKER_BACKEND='memory'
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(customer=self.customer))
mailbox.set_password('test')
username="test", osuser=User.objects.create_user(customer=self.customer)
)
mailbox.set_password("test")
mailbox.save()
form = MailboxChangeForm(instance=mailbox, data={'password': 'blub'})
form = MailboxChangeForm(instance=mailbox, data={"password": "blub"})
self.assertEqual(form.clean_password(), mailbox.password)
@ -151,55 +137,43 @@ class MailBoxAdminTest(CustomerTestCase):
self.mbadmin = MailboxAdmin(Mailbox, site)
def test_get_fieldsets_without_object(self):
self.assertEqual(
self.mbadmin.get_fieldsets(Mock()),
self.mbadmin.add_fieldsets)
self.assertEqual(self.mbadmin.get_fieldsets(Mock()), self.mbadmin.add_fieldsets)
@override_settings(
CELERY_ALWAYS_EAGER=True,
CELERY_CACHE_BACKEND='memory',
BROKER_BACKEND='memory'
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(customer=self.customer))
mailbox.set_password('test')
username="test", osuser=User.objects.create_user(customer=self.customer)
)
mailbox.set_password("test")
mailbox.save()
self.assertEqual(
self.mbadmin.get_fieldsets(Mock(), mailbox),
self.mbadmin.fieldsets)
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,
['osuser', 'password1', 'password2']
)
self.assertEqual(form.Meta.fields, ["osuser", "password1", "password2"])
@override_settings(
CELERY_ALWAYS_EAGER=True,
CELERY_CACHE_BACKEND='memory',
BROKER_BACKEND='memory'
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(customer=self.customer))
mailbox.set_password('test')
username="test", osuser=User.objects.create_user(customer=self.customer)
)
mailbox.set_password("test")
mailbox.save()
form = self.mbadmin.get_form(Mock, mailbox)
self.assertEqual(
form.Meta.fields,
['osuser', 'username', 'password', 'active']
)
self.assertEqual(form.Meta.fields, ["osuser", "username", "password", "active"])
def test_admin_for_mailbox(self):
admin_url = reverse('admin:managemails_mailaddress_changelist')
admin_url = reverse("admin:managemails_mailaddress_changelist")
self.assertIsNotNone(admin_url)
class MailAddressAdminTest(TestCase):
def test_admin_for_mailaddress(self):
admin_url = reverse('admin:managemails_mailaddress_changelist')
admin_url = reverse("admin:managemails_mailaddress_changelist")
self.assertIsNotNone(admin_url)

View file

@ -2,13 +2,11 @@
This module provides tests for :py:mod:`managemails.forms`.
"""
from __future__ import absolute_import, unicode_literals
from unittest.mock import MagicMock, Mock, patch, ANY
from mock import MagicMock, Mock, patch, ANY
from django.core.urlresolvers import reverse
from django.forms import ValidationError
from django.test import TestCase
from django.urls import reverse
from managemails.forms import (
AddMailAddressForm,
@ -22,7 +20,6 @@ from managemails.forms import (
class CreateMailboxFormTest(TestCase):
def test_constructor_needs_hostingpackage(self):
instance = MagicMock()
with self.assertRaises(KeyError):
@ -32,33 +29,35 @@ class CreateMailboxFormTest(TestCase):
hostingpackage = Mock(id=42)
instance = MagicMock()
form = CreateMailboxForm(instance, hostingpackage=hostingpackage)
self.assertTrue(hasattr(form, 'hosting_package'))
self.assertTrue(hasattr(form, "hosting_package"))
self.assertEqual(form.hosting_package, hostingpackage)
self.assertTrue(hasattr(form, 'helper'))
self.assertEqual(form.helper.form_action, reverse(
'create_mailbox', kwargs={'package': 42}))
self.assertIn('password1', form.fields)
self.assertIn('password2', form.fields)
self.assertEqual(form.helper.inputs[0].name, 'submit')
self.assertTrue(hasattr(form, "helper"))
self.assertEqual(
form.helper.form_action, reverse("create_mailbox", kwargs={"package": 42})
)
self.assertIn("password1", form.fields)
self.assertIn("password2", form.fields)
self.assertEqual(form.helper.inputs[0].name, "submit")
@patch('managemails.forms.Mailbox.objects')
@patch("managemails.forms.Mailbox.objects")
def test_save(self, mailbox_objects):
osuser = MagicMock()
hostingpackage = Mock(id=42, osuser=osuser)
instance = MagicMock()
form = CreateMailboxForm(
instance=instance, hostingpackage=hostingpackage,
data={'password1': 'secret', 'password2': 'secret'})
mailbox_objects.get_next_mailbox_name.return_value = 'mailbox23'
instance=instance,
hostingpackage=hostingpackage,
data={"password1": "secret", "password2": "secret"},
)
mailbox_objects.get_next_mailbox_name.return_value = "mailbox23"
self.assertTrue(form.is_valid())
form.save(commit=False)
self.assertEqual(osuser, form.instance.osuser)
self.assertEqual('mailbox23', form.instance.username)
instance.set_password.assert_called_with('secret')
self.assertEqual("mailbox23", form.instance.username)
instance.set_password.assert_called_with("secret")
class ChangeMailboxPasswordFormTest(TestCase):
def test_constructor_needs_hostingpackage(self):
instance = MagicMock()
with self.assertRaises(KeyError):
@ -66,72 +65,75 @@ class ChangeMailboxPasswordFormTest(TestCase):
def test_constructor(self):
hostingpackage = Mock(id=42)
instance = MagicMock(username='testuser')
instance = MagicMock(username="testuser")
form = ChangeMailboxPasswordForm(
instance=instance, hostingpackage=hostingpackage)
self.assertTrue(hasattr(form, 'hosting_package'))
instance=instance, hostingpackage=hostingpackage
)
self.assertTrue(hasattr(form, "hosting_package"))
self.assertEqual(form.hosting_package, hostingpackage)
self.assertTrue(hasattr(form, 'helper'))
self.assertEqual(form.helper.form_action, reverse(
'change_mailbox_password', kwargs={
'package': 42, 'slug': 'testuser'}))
self.assertIn('password1', form.fields)
self.assertIn('password2', form.fields)
self.assertEqual(form.helper.inputs[0].name, 'submit')
self.assertTrue(hasattr(form, "helper"))
self.assertEqual(
form.helper.form_action,
reverse(
"change_mailbox_password", kwargs={"package": 42, "slug": "testuser"}
),
)
self.assertIn("password1", form.fields)
self.assertIn("password2", form.fields)
self.assertEqual(form.helper.inputs[0].name, "submit")
def test_save(self):
hostingpackage = Mock(id=42)
instance = MagicMock(username='testuser')
instance = MagicMock(username="testuser")
form = ChangeMailboxPasswordForm(
instance=instance, hostingpackage=hostingpackage,
data={'password1': 'newsecret', 'password2': 'newsecret'})
instance=instance,
hostingpackage=hostingpackage,
data={"password1": "newsecret", "password2": "newsecret"},
)
self.assertTrue(form.is_valid())
form.save(commit=False)
instance.set_password.assert_called_with('newsecret')
instance.set_password.assert_called_with("newsecret")
class MultipleEmailValidatorTest(TestCase):
def test_valid_single_address(self):
self.assertEqual(
'test@example.org',
multiple_email_validator('test@example.org'))
"test@example.org", multiple_email_validator("test@example.org")
)
def test_valid_multiple_addresses(self):
self.assertEqual(
'test1@example.org,test2@example.org',
multiple_email_validator('test1@example.org,test2@example.org'))
"test1@example.org,test2@example.org",
multiple_email_validator("test1@example.org,test2@example.org"),
)
def test_empty(self):
self.assertEqual(
'', multiple_email_validator(''))
self.assertEqual("", multiple_email_validator(""))
def test_none(self):
self.assertIsNone(multiple_email_validator(None))
def test_invalid_single_address(self):
with self.assertRaises(ValidationError):
multiple_email_validator('no@ddress')
multiple_email_validator("no@ddress")
def test_invalid_multiple_addresses(self):
with self.assertRaises(ValidationError):
multiple_email_validator('test1@example.org,no@ddress')
multiple_email_validator("test1@example.org,no@ddress")
class MailAddressFieldMixinTest(TestCase):
def test_fields_defined(self):
form = MailAddressFieldMixin()
self.assertIn('mailbox_or_forwards', form.fields)
self.assertIn('mailbox', form.fields)
self.assertIn('forwards', form.fields)
self.assertIn("mailbox_or_forwards", form.fields)
self.assertIn("mailbox", form.fields)
self.assertIn("forwards", form.fields)
class AddMailAddressFormTest(TestCase):
def setUp(self):
self.patcher1 = patch('managemails.forms.Mailbox.objects')
self.patcher2 = patch('managemails.forms.MailAddress.objects')
self.patcher1 = patch("managemails.forms.Mailbox.objects")
self.patcher2 = patch("managemails.forms.MailAddress.objects")
self.mailbox_objects = self.patcher1.start()
self.mailaddress_objects = self.patcher2.start()
@ -151,175 +153,192 @@ class AddMailAddressFormTest(TestCase):
def test_constructor(self):
instance = MagicMock()
osuser = Mock(username='testuser')
osuser = Mock(username="testuser")
hostingpackage = MagicMock(id=42, osuser=osuser)
maildomain = MagicMock(domain='example.org')
maildomain = MagicMock(domain="example.org")
form = AddMailAddressForm(
instance=instance, hostingpackage=hostingpackage,
maildomain=maildomain)
instance=instance, hostingpackage=hostingpackage, maildomain=maildomain
)
self.mailbox_objects.unused.assert_called_with(osuser=osuser)
self.assertIn('mailbox_or_forwards', form.fields)
self.assertIn('mailbox', form.fields)
self.assertIn('forwards', form.fields)
self.assertTrue(hasattr(form, 'hosting_package'))
self.assertIn("mailbox_or_forwards", form.fields)
self.assertIn("mailbox", form.fields)
self.assertIn("forwards", form.fields)
self.assertTrue(hasattr(form, "hosting_package"))
self.assertEqual(form.hosting_package, hostingpackage)
self.assertTrue(hasattr(form, 'maildomain'))
self.assertTrue(hasattr(form, "maildomain"))
self.assertEqual(form.maildomain, maildomain)
self.assertTrue(hasattr(form, 'helper'))
self.assertEqual(form.helper.form_action, reverse(
'add_mailaddress', kwargs={
'package': 42, 'domain': 'example.org'}))
self.assertTrue(hasattr(form, "helper"))
self.assertEqual(
form.helper.form_action,
reverse("add_mailaddress", kwargs={"package": 42, "domain": "example.org"}),
)
self.assertEqual(len(form.helper.layout), 2)
self.assertEqual(form.helper.layout[1].name, 'submit')
self.assertEqual(form.helper.layout[1].name, "submit")
def test_clean_localpart_valid(self):
instance = MagicMock()
osuser = Mock(username='testuser')
osuser = Mock(username="testuser")
hostingpackage = MagicMock(id=42, osuser=osuser)
maildomain = MagicMock(domain='example.org')
maildomain = MagicMock(domain="example.org")
form = AddMailAddressForm(
instance=instance, hostingpackage=hostingpackage,
instance=instance,
hostingpackage=hostingpackage,
maildomain=maildomain,
data={
'localpart': 'test',
'mailbox_or_forwards': MAILBOX_OR_FORWARDS.forwards,
'forwards': 'test2@example.org'
})
"localpart": "test",
"mailbox_or_forwards": MAILBOX_OR_FORWARDS.forwards,
"forwards": "test2@example.org",
},
)
self.mailaddress_objects.filter(
domain=maildomain, localpart='test'
domain=maildomain, localpart="test"
).exists.return_value = False
self.assertTrue(form.is_valid())
self.assertEqual('test', form.clean_localpart())
self.assertEqual("test", form.clean_localpart())
def test_clean_localpart_duplicate(self):
instance = MagicMock()
osuser = Mock(username='testuser')
osuser = Mock(username="testuser")
hostingpackage = MagicMock(id=42, osuser=osuser)
maildomain = MagicMock(domain='example.org')
maildomain = MagicMock(domain="example.org")
form = AddMailAddressForm(
instance=instance, hostingpackage=hostingpackage,
instance=instance,
hostingpackage=hostingpackage,
maildomain=maildomain,
data={
'localpart': 'test',
'mailbox_or_forwards': MAILBOX_OR_FORWARDS.forwards,
'forwards': 'test2@example.org'
})
"localpart": "test",
"mailbox_or_forwards": MAILBOX_OR_FORWARDS.forwards,
"forwards": "test2@example.org",
},
)
self.mailaddress_objects.filter(
domain=maildomain, localpart='test'
domain=maildomain, localpart="test"
).exists.return_value = True
self.assertFalse(form.is_valid())
self.assertIn('localpart', form.errors)
self.assertIn("localpart", form.errors)
def test_clean_no_mailbox_choice(self):
instance = MagicMock()
osuser = Mock(username='testuser')
osuser = Mock(username="testuser")
hostingpackage = MagicMock(id=42, osuser=osuser)
maildomain = MagicMock(domain='example.org')
maildomain = MagicMock(domain="example.org")
form = AddMailAddressForm(
instance=instance, hostingpackage=hostingpackage,
instance=instance,
hostingpackage=hostingpackage,
maildomain=maildomain,
data={
'localpart': 'test',
'mailbox_or_forwards': MAILBOX_OR_FORWARDS.mailbox,
})
"localpart": "test",
"mailbox_or_forwards": MAILBOX_OR_FORWARDS.mailbox,
},
)
self.mailaddress_objects.filter(
domain=maildomain, localpart='test'
domain=maildomain, localpart="test"
).exists.return_value = False
self.assertFalse(form.is_valid())
self.assertIn('mailbox', form.errors)
self.assertIn("mailbox", form.errors)
def test_clean_no_forward_address_choice(self):
instance = MagicMock()
osuser = Mock(username='testuser')
osuser = Mock(username="testuser")
hostingpackage = MagicMock(id=42, osuser=osuser)
maildomain = MagicMock(domain='example.org')
maildomain = MagicMock(domain="example.org")
form = AddMailAddressForm(
instance=instance, hostingpackage=hostingpackage,
instance=instance,
hostingpackage=hostingpackage,
maildomain=maildomain,
data={
'localpart': 'test',
'mailbox_or_forwards': MAILBOX_OR_FORWARDS.forwards,
})
"localpart": "test",
"mailbox_or_forwards": MAILBOX_OR_FORWARDS.forwards,
},
)
self.mailaddress_objects.filter(
domain=maildomain, localpart='test'
domain=maildomain, localpart="test"
).exists.return_value = False
self.assertFalse(form.is_valid())
self.assertIn('forwards', form.errors)
self.assertIn("forwards", form.errors)
def test_save_with_forwards_no_commit(self):
instance = MagicMock()
osuser = Mock(username='testuser')
osuser = Mock(username="testuser")
hostingpackage = MagicMock(id=42, osuser=osuser)
maildomain = MagicMock(domain='example.org')
maildomain = MagicMock(domain="example.org")
form = AddMailAddressForm(
instance=instance, hostingpackage=hostingpackage,
instance=instance,
hostingpackage=hostingpackage,
maildomain=maildomain,
data={
'localpart': 'test',
'mailbox_or_forwards': MAILBOX_OR_FORWARDS.forwards,
'forwards': 'test2@example.org,test3@example.org'
})
"localpart": "test",
"mailbox_or_forwards": MAILBOX_OR_FORWARDS.forwards,
"forwards": "test2@example.org,test3@example.org",
},
)
self.mailaddress_objects.filter(
domain=maildomain, localpart='test'
domain=maildomain, localpart="test"
).exists.return_value = False
self.assertTrue(form.is_valid())
address1 = MagicMock(mailaddress='test2@example.org')
address2 = MagicMock(mailaddress='test3@example.org')
address1 = MagicMock(mailaddress="test2@example.org")
address2 = MagicMock(mailaddress="test3@example.org")
instance.set_forward_addresses.return_value = [address1, address2]
form.save(commit=False)
self.assertEqual(maildomain, instance.domain)
instance.set_forward_addresses.assert_called_with([
'test2@example.org', 'test3@example.org'], commit=False)
instance.set_forward_addresses.assert_called_with(
["test2@example.org", "test3@example.org"], commit=False
)
address1.save.assert_not_called()
address2.save.assert_not_called()
instance.save.assert_not_called()
def test_save_with_forwards_commit(self):
instance = MagicMock()
osuser = Mock(username='testuser')
osuser = Mock(username="testuser")
hostingpackage = MagicMock(id=42, osuser=osuser)
maildomain = MagicMock(domain='example.org')
maildomain = MagicMock(domain="example.org")
form = AddMailAddressForm(
instance=instance, hostingpackage=hostingpackage,
instance=instance,
hostingpackage=hostingpackage,
maildomain=maildomain,
data={
'localpart': 'test',
'mailbox_or_forwards': MAILBOX_OR_FORWARDS.forwards,
'forwards': 'test2@example.org,test3@example.org'
})
"localpart": "test",
"mailbox_or_forwards": MAILBOX_OR_FORWARDS.forwards,
"forwards": "test2@example.org,test3@example.org",
},
)
self.mailaddress_objects.filter(
domain=maildomain, localpart='test'
domain=maildomain, localpart="test"
).exists.return_value = False
self.assertTrue(form.is_valid())
address1 = MagicMock(mailaddress='test2@example.org')
address2 = MagicMock(mailaddress='test3@example.org')
address1 = MagicMock(mailaddress="test2@example.org")
address2 = MagicMock(mailaddress="test3@example.org")
instance.set_forward_addresses.return_value = [address1, address2]
form.save(commit=True)
self.assertEqual(maildomain, instance.domain)
instance.set_forward_addresses.assert_called_with([
'test2@example.org', 'test3@example.org'], commit=False)
instance.set_forward_addresses.assert_called_with(
["test2@example.org", "test3@example.org"], commit=False
)
address1.save.assert_called_with()
address2.save.assert_called_with()
instance.save.assert_called_with()
def test_save_with_mailbox_no_commit(self):
instance = MagicMock()
osuser = Mock(username='testuser')
osuser = Mock(username="testuser")
hostingpackage = MagicMock(id=42, osuser=osuser)
maildomain = MagicMock(domain='example.org')
maildomain = MagicMock(domain="example.org")
form = AddMailAddressForm(
instance=instance, hostingpackage=hostingpackage,
instance=instance,
hostingpackage=hostingpackage,
maildomain=maildomain,
data={
'localpart': 'test',
'mailbox_or_forwards': MAILBOX_OR_FORWARDS.mailbox,
'mailbox': 'mailbox23',
})
"localpart": "test",
"mailbox_or_forwards": MAILBOX_OR_FORWARDS.mailbox,
"mailbox": "mailbox23",
},
)
self.mailaddress_objects.filter(
domain=maildomain, localpart='test'
domain=maildomain, localpart="test"
).exists.return_value = False
self.assertTrue(form.is_valid())
mailbox = MagicMock(osuser=osuser, username='testuserp01')
mailbox = MagicMock(osuser=osuser, username="testuserp01")
instance.set_mailbox.return_value = mailbox
form.save(commit=False)
self.assertEqual(maildomain, instance.domain)
@ -329,22 +348,24 @@ class AddMailAddressFormTest(TestCase):
def test_save_with_mailbox_commit(self):
instance = MagicMock()
osuser = Mock(username='testuser')
osuser = Mock(username="testuser")
hostingpackage = MagicMock(id=42, osuser=osuser)
maildomain = MagicMock(domain='example.org')
maildomain = MagicMock(domain="example.org")
form = AddMailAddressForm(
instance=instance, hostingpackage=hostingpackage,
instance=instance,
hostingpackage=hostingpackage,
maildomain=maildomain,
data={
'localpart': 'test',
'mailbox_or_forwards': MAILBOX_OR_FORWARDS.mailbox,
'mailbox': 'mailbox23',
})
"localpart": "test",
"mailbox_or_forwards": MAILBOX_OR_FORWARDS.mailbox,
"mailbox": "mailbox23",
},
)
self.mailaddress_objects.filter(
domain=maildomain, localpart='test'
domain=maildomain, localpart="test"
).exists.return_value = False
self.assertTrue(form.is_valid())
mailbox = MagicMock(osuser=osuser, username='testuserp01')
mailbox = MagicMock(osuser=osuser, username="testuserp01")
instance.set_mailbox.return_value = mailbox
form.save(commit=True)
self.assertEqual(maildomain, instance.domain)
@ -355,26 +376,28 @@ class AddMailAddressFormTest(TestCase):
def test_save_with_other_choice(self):
instance = MagicMock()
osuser = Mock(username='testuser')
osuser = Mock(username="testuser")
hostingpackage = MagicMock(id=42, osuser=osuser)
maildomain = MagicMock(domain='example.org')
maildomain = MagicMock(domain="example.org")
form = AddMailAddressForm(
instance=instance, hostingpackage=hostingpackage,
instance=instance,
hostingpackage=hostingpackage,
maildomain=maildomain,
data={
'localpart': 'test',
'mailbox_or_forwards': MAILBOX_OR_FORWARDS.mailbox,
'mailbox': 'mailbox23',
})
"localpart": "test",
"mailbox_or_forwards": MAILBOX_OR_FORWARDS.mailbox,
"mailbox": "mailbox23",
},
)
self.mailaddress_objects.filter(
domain=maildomain, localpart='test'
domain=maildomain, localpart="test"
).exists.return_value = False
self.assertTrue(form.is_valid())
form.cleaned_data['mailbox_or_forwards'] = -1
address1 = MagicMock(mailaddress='test2@example.org')
address2 = MagicMock(mailaddress='test3@example.org')
form.cleaned_data["mailbox_or_forwards"] = -1
address1 = MagicMock(mailaddress="test2@example.org")
address2 = MagicMock(mailaddress="test3@example.org")
instance.set_forward_addresses.return_value = [address1, address2]
mailbox = MagicMock(osuser=osuser, username='testuserp01')
mailbox = MagicMock(osuser=osuser, username="testuserp01")
instance.set_mailbox.return_value = mailbox
form.save(commit=True)
instance.set_mailbox.assert_not_called()
@ -386,10 +409,9 @@ class AddMailAddressFormTest(TestCase):
class EditMailAddressFormTest(TestCase):
def setUp(self):
self.patcher1 = patch('managemails.forms.Mailbox.objects')
self.patcher2 = patch('managemails.forms.MailAddress.objects')
self.patcher1 = patch("managemails.forms.Mailbox.objects")
self.patcher2 = patch("managemails.forms.MailAddress.objects")
self.mailbox_objects = self.patcher1.start()
self.mailaddress_objects = self.patcher2.start()
@ -409,115 +431,125 @@ class EditMailAddressFormTest(TestCase):
def test_constructor(self):
instance = MagicMock(id=23)
osuser = Mock(username='testuser')
osuser = Mock(username="testuser")
hostingpackage = MagicMock(id=42, osuser=osuser)
maildomain = MagicMock(domain='example.org')
maildomain = MagicMock(domain="example.org")
form = EditMailAddressForm(
instance=instance, maildomain=maildomain,
hostingpackage=hostingpackage)
instance=instance, maildomain=maildomain, hostingpackage=hostingpackage
)
self.mailbox_objects.unused_or_own.assert_called_with(instance, osuser)
self.assertIn('mailbox_or_forwards', form.fields)
self.assertIn('mailbox', form.fields)
self.assertIn('forwards', form.fields)
self.assertTrue(hasattr(form, 'hosting_package'))
self.assertIn("mailbox_or_forwards", form.fields)
self.assertIn("mailbox", form.fields)
self.assertIn("forwards", form.fields)
self.assertTrue(hasattr(form, "hosting_package"))
self.assertEqual(form.hosting_package, hostingpackage)
self.assertTrue(hasattr(form, 'maildomain'))
self.assertTrue(hasattr(form, "maildomain"))
self.assertEqual(form.maildomain, maildomain)
self.assertTrue(hasattr(form, 'helper'))
self.assertEqual(form.helper.form_action, reverse(
'edit_mailaddress', kwargs={
'package': 42,
'domain': 'example.org',
'pk': 23}))
self.assertTrue(hasattr(form, "helper"))
self.assertEqual(
form.helper.form_action,
reverse(
"edit_mailaddress",
kwargs={"package": 42, "domain": "example.org", "pk": 23},
),
)
self.assertEqual(len(form.helper.layout), 2)
self.assertEqual(form.helper.layout[1].name, 'submit')
self.assertEqual(form.helper.layout[1].name, "submit")
def test_clean_no_mailbox_choice(self):
instance = MagicMock(id=23)
osuser = Mock(username='testuser')
osuser = Mock(username="testuser")
hostingpackage = MagicMock(id=42, osuser=osuser)
maildomain = MagicMock(domain='example.org')
maildomain = MagicMock(domain="example.org")
form = EditMailAddressForm(
instance=instance, maildomain=maildomain,
instance=instance,
maildomain=maildomain,
hostingpackage=hostingpackage,
data={
'mailbox_or_forwards': MAILBOX_OR_FORWARDS.mailbox,
})
data={"mailbox_or_forwards": MAILBOX_OR_FORWARDS.mailbox},
)
self.assertFalse(form.is_valid())
self.assertIn('mailbox', form.errors)
self.assertIn("mailbox", form.errors)
def test_clean_no_forward_address_choice(self):
instance = MagicMock(id=23)
osuser = Mock(username='testuser')
osuser = Mock(username="testuser")
hostingpackage = MagicMock(id=42, osuser=osuser)
maildomain = MagicMock(domain='example.org')
maildomain = MagicMock(domain="example.org")
form = EditMailAddressForm(
instance=instance, maildomain=maildomain,
instance=instance,
maildomain=maildomain,
hostingpackage=hostingpackage,
data={
'mailbox_or_forwards': MAILBOX_OR_FORWARDS.forwards,
})
data={"mailbox_or_forwards": MAILBOX_OR_FORWARDS.forwards},
)
self.assertFalse(form.is_valid())
self.assertIn('forwards', form.errors)
self.assertIn("forwards", form.errors)
def test_save_with_forwards_no_commit(self):
instance = MagicMock(id=23)
osuser = Mock(username='testuser')
osuser = Mock(username="testuser")
hostingpackage = MagicMock(id=42, osuser=osuser)
maildomain = MagicMock(domain='example.org')
maildomain = MagicMock(domain="example.org")
form = EditMailAddressForm(
instance=instance, maildomain=maildomain,
instance=instance,
maildomain=maildomain,
hostingpackage=hostingpackage,
data={
'mailbox_or_forwards': MAILBOX_OR_FORWARDS.forwards,
'forwards': 'test2@example.org,test3@example.org'
})
"mailbox_or_forwards": MAILBOX_OR_FORWARDS.forwards,
"forwards": "test2@example.org,test3@example.org",
},
)
self.assertTrue(form.is_valid())
address1 = MagicMock(mailaddress='test2@example.org')
address2 = MagicMock(mailaddress='test3@example.org')
address1 = MagicMock(mailaddress="test2@example.org")
address2 = MagicMock(mailaddress="test3@example.org")
instance.set_forward_addresses.return_value = [address1, address2]
form.save(commit=False)
instance.set_forward_addresses.assert_called_with(
['test2@example.org', 'test3@example.org'], False)
["test2@example.org", "test3@example.org"], False
)
address1.save.assert_not_called()
address2.save.assert_not_called()
instance.save.assert_not_called()
def test_save_with_forwards_commit(self):
instance = MagicMock(id=23)
osuser = Mock(username='testuser')
osuser = Mock(username="testuser")
hostingpackage = MagicMock(id=42, osuser=osuser)
maildomain = MagicMock(domain='example.org')
maildomain = MagicMock(domain="example.org")
form = EditMailAddressForm(
instance=instance, maildomain=maildomain,
instance=instance,
maildomain=maildomain,
hostingpackage=hostingpackage,
data={
'mailbox_or_forwards': MAILBOX_OR_FORWARDS.forwards,
'forwards': 'test2@example.org,test3@example.org'
})
"mailbox_or_forwards": MAILBOX_OR_FORWARDS.forwards,
"forwards": "test2@example.org,test3@example.org",
},
)
self.assertTrue(form.is_valid())
address1 = MagicMock(mailaddress='test2@example.org')
address2 = MagicMock(mailaddress='test3@example.org')
address1 = MagicMock(mailaddress="test2@example.org")
address2 = MagicMock(mailaddress="test3@example.org")
instance.set_forward_addresses.return_value = [address1, address2]
form.save(commit=True)
instance.set_forward_addresses.assert_called_with(
['test2@example.org', 'test3@example.org'], True)
["test2@example.org", "test3@example.org"], True
)
instance.save.assert_called_with()
def test_save_with_mailbox_no_commit(self):
instance = MagicMock(id=23)
osuser = Mock(username='testuser')
osuser = Mock(username="testuser")
hostingpackage = MagicMock(id=42, osuser=osuser)
maildomain = MagicMock(domain='example.org')
maildomain = MagicMock(domain="example.org")
form = EditMailAddressForm(
instance=instance, maildomain=maildomain,
instance=instance,
maildomain=maildomain,
hostingpackage=hostingpackage,
data={
'mailbox_or_forwards': MAILBOX_OR_FORWARDS.mailbox,
'mailbox': 'mailbox23',
})
"mailbox_or_forwards": MAILBOX_OR_FORWARDS.mailbox,
"mailbox": "mailbox23",
},
)
self.assertTrue(form.is_valid())
mailbox = MagicMock(osuser=osuser, username='testuserp01')
mailbox = MagicMock(osuser=osuser, username="testuserp01")
instance.set_mailbox.return_value = mailbox
form.save(commit=False)
instance.set_mailbox.assert_called_with(ANY, False)
@ -526,18 +558,20 @@ class EditMailAddressFormTest(TestCase):
def test_save_with_mailbox_commit(self):
instance = MagicMock(id=23)
osuser = Mock(username='testuser')
osuser = Mock(username="testuser")
hostingpackage = MagicMock(id=42, osuser=osuser)
maildomain = MagicMock(domain='example.org')
maildomain = MagicMock(domain="example.org")
form = EditMailAddressForm(
instance=instance, maildomain=maildomain,
instance=instance,
maildomain=maildomain,
hostingpackage=hostingpackage,
data={
'mailbox_or_forwards': MAILBOX_OR_FORWARDS.mailbox,
'mailbox': 'mailbox23',
})
"mailbox_or_forwards": MAILBOX_OR_FORWARDS.mailbox,
"mailbox": "mailbox23",
},
)
self.assertTrue(form.is_valid())
mailbox = MagicMock(osuser=osuser, username='testuserp01')
mailbox = MagicMock(osuser=osuser, username="testuserp01")
instance.set_mailbox.return_value = mailbox
self.mailbox_objects.unused_or_own.get.return_value = mailbox
form.save(commit=True)
@ -546,18 +580,20 @@ class EditMailAddressFormTest(TestCase):
def test_save_with_other_choice(self):
instance = MagicMock(id=23)
osuser = Mock(username='testuser')
osuser = Mock(username="testuser")
hostingpackage = MagicMock(id=42, osuser=osuser)
maildomain = MagicMock(domain='example.org')
maildomain = MagicMock(domain="example.org")
form = EditMailAddressForm(
instance=instance, maildomain=maildomain,
instance=instance,
maildomain=maildomain,
hostingpackage=hostingpackage,
data={
'mailbox_or_forwards': MAILBOX_OR_FORWARDS.mailbox,
'mailbox': 'mailbox23',
})
"mailbox_or_forwards": MAILBOX_OR_FORWARDS.mailbox,
"mailbox": "mailbox23",
},
)
self.assertTrue(form.is_valid())
form.cleaned_data['mailbox_or_forwards'] = -1
form.cleaned_data["mailbox_or_forwards"] = -1
form.save(commit=True)
instance.set_mailbox.assert_not_called()
instance.save.assert_called_with()

View file

@ -1,9 +1,7 @@
"""
This module contains tests for :py:mod:`managemails.models`
"""
from __future__ import unicode_literals
from mock import patch
from unittest.mock import patch
from django.test import TestCase, TransactionTestCase
from django.test.utils import override_settings
@ -14,59 +12,51 @@ from passlib.hash import sha512_crypt
from domains.models import MailDomain
from osusers.models import User
from managemails.models import (
MailAddress,
Mailbox,
)
from managemails.models import MailAddress, Mailbox
Customer = get_user_model()
@override_settings(
CELERY_ALWAYS_EAGER=True,
CELERY_CACHE_BACKEND='memory',
BROKER_BACKEND='memory'
CELERY_ALWAYS_EAGER=True, CELERY_CACHE_BACKEND="memory", BROKER_BACKEND="memory"
)
class MailboxTest(TestCase):
def setUp(self):
super(MailboxTest, self).setUp()
self.customer = Customer.objects.create_user('test')
self.customer = Customer.objects.create_user("test")
def test_set_password(self):
user = User.objects.create_user(self.customer)
mb = Mailbox.objects.create(username='test', osuser=user)
mb.set_password('test')
self.assertTrue(sha512_crypt.verify('test', mb.password))
mb = Mailbox.objects.create(username="test", osuser=user)
mb.set_password("test")
self.assertTrue(sha512_crypt.verify("test", mb.password))
def test___str__(self):
user = User.objects.create_user(self.customer)
mb = Mailbox.objects.create(username='test', osuser=user)
mb.set_password('test')
self.assertEqual(str(mb), 'test')
mb = Mailbox.objects.create(username="test", osuser=user)
mb.set_password("test")
self.assertEqual(str(mb), "test")
@patch('managemails.models.create_file_mailbox')
@patch("managemails.models.create_file_mailbox")
def test_save(self, create_file_mailbox_task):
user = User.objects.create_user(self.customer)
mb = Mailbox.objects.create_mailbox(user)
self.assertIsNotNone(mb.pk)
create_file_mailbox_task.delay.assert_called_with(
user.username, mb.username)
create_file_mailbox_task.delay.assert_called_with(user.username, mb.username)
@patch('managemails.models.delete_file_mailbox')
@patch("managemails.models.delete_file_mailbox")
def test_delete(self, delete_file_mailbox_task):
user = User.objects.create_user(self.customer)
mb = Mailbox.objects.create_mailbox(user)
mb.delete()
self.assertIsNone(mb.pk)
delete_file_mailbox_task.delay.assert_called_with(
user.username, mb.username)
delete_file_mailbox_task.delay.assert_called_with(user.username, mb.username)
def test_get_mailaddresses(self):
user = User.objects.create_user(self.customer)
mb = Mailbox.objects.create_mailbox(user)
md = MailDomain.objects.create(domain='example.org')
address = MailAddress.objects.create(localpart='test', domain=md)
md = MailDomain.objects.create(domain="example.org")
address = MailAddress.objects.create(localpart="test", domain=md)
address.set_mailbox(mb)
mailaddresses = mb.get_mailaddresses()
self.assertEqual(len(mailaddresses), 1)
@ -74,31 +64,28 @@ class MailboxTest(TestCase):
@override_settings(
CELERY_ALWAYS_EAGER=True,
CELERY_CACHE_BACKEND='memory',
BROKER_BACKEND='memory'
CELERY_ALWAYS_EAGER=True, CELERY_CACHE_BACKEND="memory", BROKER_BACKEND="memory"
)
class MailAddressTest(TransactionTestCase):
def test__str__(self):
md = MailDomain.objects.create(domain='example.org')
ma = MailAddress.objects.create(localpart='test', domain=md)
self.assertEqual(str(ma), 'test@example.org')
md = MailDomain.objects.create(domain="example.org")
ma = MailAddress.objects.create(localpart="test", domain=md)
self.assertEqual(str(ma), "test@example.org")
def test_set_mailbox_fresh(self):
customer = Customer.objects.create_user('test')
customer = Customer.objects.create_user("test")
user = User.objects.create_user(customer)
md = MailDomain.objects.create(domain='example.org')
ma = MailAddress.objects.create(localpart='test', domain=md)
md = MailDomain.objects.create(domain="example.org")
ma = MailAddress.objects.create(localpart="test", domain=md)
mb = Mailbox.objects.create_mailbox(user)
ma.set_mailbox(mb)
self.assertIn(ma, mb.get_mailaddresses())
def test_set_mailbox_reassing(self):
customer = Customer.objects.create_user('test')
customer = Customer.objects.create_user("test")
user = User.objects.create_user(customer)
md = MailDomain.objects.create(domain='example.org')
ma = MailAddress.objects.create(localpart='test', domain=md)
md = MailDomain.objects.create(domain="example.org")
ma = MailAddress.objects.create(localpart="test", domain=md)
mb = Mailbox.objects.create_mailbox(user)
ma.set_mailbox(mb)
mb2 = Mailbox.objects.create_mailbox(user)
@ -107,168 +94,178 @@ class MailAddressTest(TransactionTestCase):
self.assertNotIn(ma, mb.get_mailaddresses())
def test_set_mailbox_with_forwards(self):
customer = Customer.objects.create_user('test')
customer = Customer.objects.create_user("test")
user = User.objects.create_user(customer)
md = MailDomain.objects.create(domain='example.org')
ma = MailAddress.objects.create(localpart='test', domain=md)
md = MailDomain.objects.create(domain="example.org")
ma = MailAddress.objects.create(localpart="test", domain=md)
mb = Mailbox.objects.create_mailbox(user)
ma.set_forward_addresses(['test2@example.org'])
ma.set_forward_addresses(["test2@example.org"])
ma.set_mailbox(mb)
self.assertEqual(ma.mailaddressforward_set.count(), 0)
self.assertIn(ma, mb.get_mailaddresses())
def test_set_mailbox_with_unsaved_address(self):
customer = Customer.objects.create_user('test')
customer = Customer.objects.create_user("test")
user = User.objects.create_user(customer)
md = MailDomain.objects.create(domain='example.org')
ma = MailAddress(localpart='test', domain=md)
md = MailDomain.objects.create(domain="example.org")
ma = MailAddress(localpart="test", domain=md)
mb = Mailbox.objects.create_mailbox(user)
ma.set_mailbox(mb)
self.assertIn(ma, mb.get_mailaddresses())
def test_set_mailbox_fresh_no_commit(self):
customer = Customer.objects.create_user('test')
customer = Customer.objects.create_user("test")
user = User.objects.create_user(customer)
md = MailDomain.objects.create(domain='example.org')
ma = MailAddress.objects.create(localpart='test', domain=md)
md = MailDomain.objects.create(domain="example.org")
ma = MailAddress.objects.create(localpart="test", domain=md)
mb = Mailbox.objects.create_mailbox(user)
ma.set_mailbox(mb, commit=False)
self.assertNotIn(ma, mb.get_mailaddresses())
def test_set_mailbox_with_unsaved_address_no_commit(self):
customer = Customer.objects.create_user('test')
customer = Customer.objects.create_user("test")
user = User.objects.create_user(customer)
md = MailDomain.objects.create(domain='example.org')
ma = MailAddress(localpart='test', domain=md)
md = MailDomain.objects.create(domain="example.org")
ma = MailAddress(localpart="test", domain=md)
mb = Mailbox.objects.create_mailbox(user)
ma.set_mailbox(mb, commit=False)
self.assertNotIn(ma, mb.get_mailaddresses())
def test_set_forward_addresses_fresh(self):
md = MailDomain.objects.create(domain='example.org')
ma = MailAddress.objects.create(localpart='test', domain=md)
ma.set_forward_addresses(['test2@example.org'])
md = MailDomain.objects.create(domain="example.org")
ma = MailAddress.objects.create(localpart="test", domain=md)
ma.set_forward_addresses(["test2@example.org"])
def get_target(maf):
return maf.target
self.assertQuerysetEqual(
ma.mailaddressforward_set.all(), ['test2@example.org'],
lambda(maf): maf.target)
ma.mailaddressforward_set.all(), ["test2@example.org"], get_target
)
def test_set_forward_addresses_unsaved(self):
md = MailDomain.objects.create(domain='example.org')
ma = MailAddress(localpart='test', domain=md)
ma.set_forward_addresses(['test2@example.org'])
md = MailDomain.objects.create(domain="example.org")
ma = MailAddress(localpart="test", domain=md)
ma.set_forward_addresses(["test2@example.org"])
def get_target(maf):
return maf.target
self.assertQuerysetEqual(
ma.mailaddressforward_set.all(), ['test2@example.org'],
lambda(maf): maf.target)
ma.mailaddressforward_set.all(), ["test2@example.org"], get_target
)
def test_set_forward_addresses_replace_forwards(self):
md = MailDomain.objects.create(domain='example.org')
ma = MailAddress.objects.create(localpart='test', domain=md)
ma.set_forward_addresses(['test2@example.org'])
ma.set_forward_addresses(['test3@example.org'])
md = MailDomain.objects.create(domain="example.org")
ma = MailAddress.objects.create(localpart="test", domain=md)
ma.set_forward_addresses(["test2@example.org"])
ma.set_forward_addresses(["test3@example.org"])
def get_target(maf):
return maf.target
self.assertQuerysetEqual(
ma.mailaddressforward_set.all(), ['test3@example.org'],
lambda(maf): maf.target)
ma.mailaddressforward_set.all(), ["test3@example.org"], get_target
)
def test_set_forward_addresses_add_forwards(self):
md = MailDomain.objects.create(domain='example.org')
ma = MailAddress.objects.create(localpart='test', domain=md)
ma.set_forward_addresses(['test2@example.org'])
ma.set_forward_addresses(['test2@example.org', 'test3@example.org'])
md = MailDomain.objects.create(domain="example.org")
ma = MailAddress.objects.create(localpart="test", domain=md)
ma.set_forward_addresses(["test2@example.org"])
ma.set_forward_addresses(["test2@example.org", "test3@example.org"])
def get_target(maf):
return maf.target
self.assertQuerysetEqual(
ma.mailaddressforward_set.all(),
['test2@example.org', 'test3@example.org'],
lambda(maf): maf.target,
ordered=False)
["test2@example.org", "test3@example.org"],
get_target,
ordered=False,
)
def test_set_forward_addresses_replace_mailbox(self):
customer = Customer.objects.create_user('test')
customer = Customer.objects.create_user("test")
user = User.objects.create_user(customer)
md = MailDomain.objects.create(domain='example.org')
ma = MailAddress.objects.create(localpart='test', domain=md)
md = MailDomain.objects.create(domain="example.org")
ma = MailAddress.objects.create(localpart="test", domain=md)
mb = Mailbox.objects.create_mailbox(user)
ma.set_mailbox(mb)
ma.set_forward_addresses(['test2@example.org'])
ma.set_forward_addresses(["test2@example.org"])
self.assertNotIn(ma, mb.get_mailaddresses())
def get_target(maf):
return maf.target
self.assertQuerysetEqual(
ma.mailaddressforward_set.all(), ['test2@example.org'],
lambda(maf): maf.target)
ma.mailaddressforward_set.all(), ["test2@example.org"], get_target
)
def test_set_forward_addresses_fresh_no_commit(self):
md = MailDomain.objects.create(domain='example.org')
ma = MailAddress.objects.create(localpart='test', domain=md)
mafwds = ma.set_forward_addresses(['test2@example.org'], commit=False)
md = MailDomain.objects.create(domain="example.org")
ma = MailAddress.objects.create(localpart="test", domain=md)
mafwds = ma.set_forward_addresses(["test2@example.org"], commit=False)
self.assertEqual(ma.mailaddressforward_set.count(), 0)
self.assertEqual(mafwds[0].target, 'test2@example.org')
self.assertEqual(mafwds[0].target, "test2@example.org")
def test_set_forward_address_unsaved_no_commit(self):
md = MailDomain.objects.create(domain='example.org')
ma = MailAddress(localpart='test', domain=md)
mafwds = ma.set_forward_addresses(['test2@example.org'], commit=False)
md = MailDomain.objects.create(domain="example.org")
ma = MailAddress(localpart="test", domain=md)
mafwds = ma.set_forward_addresses(["test2@example.org"], commit=False)
self.assertEqual(ma.mailaddressforward_set.count(), 0)
self.assertEqual(mafwds[0].target, 'test2@example.org')
self.assertEqual(mafwds[0].target, "test2@example.org")
@override_settings(
CELERY_ALWAYS_EAGER=True,
CELERY_CACHE_BACKEND='memory',
BROKER_BACKEND='memory'
CELERY_ALWAYS_EAGER=True, CELERY_CACHE_BACKEND="memory", BROKER_BACKEND="memory"
)
class MailboxManagerTest(TransactionTestCase):
def setUp(self):
super(MailboxManagerTest, self).setUp()
self.customer = Customer.objects.create_user('test')
self.customer = Customer.objects.create_user("test")
self.user = User.objects.create_user(self.customer)
def test_get_next_mailbox_name_fresh(self):
mailboxname = Mailbox.objects.get_next_mailbox_name(self.user)
self.assertEqual(mailboxname, '{}p01'.format(self.user.username))
self.assertEqual(mailboxname, "{}p01".format(self.user.username))
def test_get_next_mailbox_name_second(self):
Mailbox.objects.create_mailbox(self.user)
mailboxname = Mailbox.objects.get_next_mailbox_name(self.user)
self.assertEqual(mailboxname, '{}p02'.format(self.user.username))
self.assertEqual(mailboxname, "{}p02".format(self.user.username))
def test_get_next_mailbox_name_gap_detection(self):
mailboxes = [
Mailbox.objects.create_mailbox(self.user) for i in range(3)
]
mailboxes = [Mailbox.objects.create_mailbox(self.user) for _ in range(3)]
mailboxes[1].delete()
mailboxname = Mailbox.objects.get_next_mailbox_name(self.user)
self.assertEqual(mailboxname, '{}p02'.format(self.user.username))
self.assertEqual(mailboxname, "{}p02".format(self.user.username))
def test_unused_or_own_fresh(self):
md = MailDomain.objects.create(domain='example.org')
address = MailAddress.objects.create(localpart='test', domain=md)
md = MailDomain.objects.create(domain="example.org")
address = MailAddress.objects.create(localpart="test", domain=md)
mailboxes = Mailbox.objects.unused_or_own(address, self.user)
self.assertQuerysetEqual(mailboxes, [])
def test_unused_or_own_unassigned(self):
md = MailDomain.objects.create(domain='example.org')
address = MailAddress.objects.create(localpart='test', domain=md)
mailboxes = [
Mailbox.objects.create_mailbox(self.user) for i in range(2)
]
md = MailDomain.objects.create(domain="example.org")
address = MailAddress.objects.create(localpart="test", domain=md)
mailboxes = [Mailbox.objects.create_mailbox(self.user) for _ in range(2)]
assignable = Mailbox.objects.unused_or_own(address, self.user)
self.assertQuerysetEqual(assignable, [repr(mb) for mb in mailboxes])
def test_unused_or_own_assigned(self):
md = MailDomain.objects.create(domain='example.org')
address = MailAddress.objects.create(localpart='test', domain=md)
mailboxes = [
Mailbox.objects.create_mailbox(self.user) for i in range(2)
]
md = MailDomain.objects.create(domain="example.org")
address = MailAddress.objects.create(localpart="test", domain=md)
mailboxes = [Mailbox.objects.create_mailbox(self.user) for _ in range(2)]
address.set_mailbox(mailboxes[0])
assignable = Mailbox.objects.unused_or_own(address, self.user)
self.assertQuerysetEqual(assignable, [repr(mb) for mb in mailboxes])
def test_unused_or_own_assigned_other(self):
md = MailDomain.objects.create(domain='example.org')
address = MailAddress.objects.create(localpart='test', domain=md)
address2 = MailAddress.objects.create(localpart='test2', domain=md)
mailboxes = [
Mailbox.objects.create_mailbox(self.user) for i in range(2)
]
md = MailDomain.objects.create(domain="example.org")
address = MailAddress.objects.create(localpart="test", domain=md)
address2 = MailAddress.objects.create(localpart="test2", domain=md)
mailboxes = [Mailbox.objects.create_mailbox(self.user) for _ in range(2)]
address2.set_mailbox(mailboxes[0])
assignable = Mailbox.objects.unused_or_own(address, self.user)
self.assertQuerysetEqual(assignable, [repr(mailboxes[1])])
@ -283,11 +280,9 @@ class MailboxManagerTest(TransactionTestCase):
self.assertQuerysetEqual(mailboxes, [repr(mailbox)])
def test_unused_assigned(self):
md = MailDomain.objects.create(domain='example.org')
address = MailAddress.objects.create(localpart='test', domain=md)
mailboxes = [
Mailbox.objects.create_mailbox(self.user) for i in range(2)
]
md = MailDomain.objects.create(domain="example.org")
address = MailAddress.objects.create(localpart="test", domain=md)
mailboxes = [Mailbox.objects.create_mailbox(self.user) for _ in range(2)]
address.set_mailbox(mailboxes[0])
assignable = Mailbox.objects.unused(self.user)
self.assertQuerysetEqual(assignable, [repr(mailboxes[1])])
@ -295,31 +290,28 @@ class MailboxManagerTest(TransactionTestCase):
def test_create_mailbox_no_password(self):
mailbox = Mailbox.objects.create_mailbox(self.user)
self.assertEqual(mailbox.osuser, self.user)
self.assertEqual(mailbox.username, '{}p01'.format(self.user.username))
self.assertEqual(mailbox.password, '')
self.assertEqual(mailbox.username, "{}p01".format(self.user.username))
self.assertEqual(mailbox.password, "")
def test_create_mailbox_with_password(self):
mailbox = Mailbox.objects.create_mailbox(self.user, 'test')
mailbox = Mailbox.objects.create_mailbox(self.user, "test")
self.assertEqual(mailbox.osuser, self.user)
self.assertEqual(mailbox.username, '{}p01'.format(self.user.username))
self.assertTrue(sha512_crypt.verify('test', mailbox.password))
self.assertEqual(mailbox.username, "{}p01".format(self.user.username))
self.assertTrue(sha512_crypt.verify("test", mailbox.password))
@override_settings(
CELERY_ALWAYS_EAGER=True,
CELERY_CACHE_BACKEND='memory',
BROKER_BACKEND='memory'
CELERY_ALWAYS_EAGER=True, CELERY_CACHE_BACKEND="memory", BROKER_BACKEND="memory"
)
class MailAddressMailboxTest(TestCase):
def setUp(self):
super(MailAddressMailboxTest, self).setUp()
self.customer = Customer.objects.create_user('test')
self.customer = Customer.objects.create_user("test")
def test___str__(self):
user = User.objects.create_user(self.customer)
md = MailDomain.objects.create(domain='example.org')
ma = MailAddress(localpart='test', domain=md)
md = MailDomain.objects.create(domain="example.org")
ma = MailAddress(localpart="test", domain=md)
mb = Mailbox.objects.create_mailbox(user)
ma.set_mailbox(mb)
self.assertEqual(str(ma.mailaddressmailbox), mb.username)

File diff suppressed because it is too large Load diff