Fixed tests.

This commit is contained in:
Antoine Nguyen
2016-11-23 18:31:12 +01:00
parent 475fe58946
commit 68ae27e1ec
4 changed files with 23 additions and 17 deletions
+1 -1
View File
@@ -28,7 +28,7 @@ class RelayDomainFactory(PermissionFactory):
model = models.RelayDomain
django_get_or_create = ("domain", )
domain = factory.SubFactory(DomainFactory, type="relaydomain")
target_host = "external.host.tld"
domain = factory.SubFactory(DomainFactory)
verify_recipients = True
service = factory.SubFactory(ServiceFactory)
+3
View File
@@ -45,6 +45,9 @@ class RelayDomainFormGeneral(forms.ModelForm):
"""Custom save method."""
domain = kwargs.get("domain")
instance = super(RelayDomainFormGeneral, self).save(commit=False)
if instance.domain and instance.domain.type == "domain":
# Avoid new creation if domain type has been changed.
return None
if domain:
instance.domain = domain
instance.save()
+1 -1
View File
@@ -41,7 +41,7 @@ def clean_domain(sender, instance, **kwargs):
return
has_relaydom = hasattr(instance, "relaydomain")
if instance.type == "domain" and has_relaydom:
models.RelayDomain.objects.filter(domain=instance).delete()
instance.relaydomain.delete()
elif instance.type == "relaydomain" and not has_relaydom:
# Make sure to create a RelayDomain instance since we can't do it
# at form level...
+18 -15
View File
@@ -14,13 +14,13 @@ from modoboa.lib.test_utils import MapFilesTestCaseMixin
from modoboa.limits import utils as limits_utils
from .factories import RelayDomainFactory
from .models import RelayDomain, Service
from . import models
class Operations(object):
def _create_relay_domain(self, name, status=200):
srv, created = Service.objects.get_or_create(name='dummy')
srv, created = models.Service.objects.get_or_create(name='dummy')
values = {
"name": name, "create_dom_admin": False, "type": "relaydomain",
"target_host": "external.host.tld", "service": srv.id,
@@ -32,7 +32,7 @@ class Operations(object):
)
def _relay_domain_alias_operation(self, optype, rdomain, name, status=200):
rdom = RelayDomain.objects.get(domain__name=rdomain)
rdom = models.RelayDomain.objects.get(domain__name=rdomain)
values = {
"name": rdom.domain.name, "target_host": rdom.target_host,
"type": "relaydomain", "service": rdom.service.id
@@ -65,6 +65,8 @@ class RelayDomainsTestCase(ModoTestCase, Operations):
super(RelayDomainsTestCase, cls).setUpTestData()
admin_factories.populate_database()
cls.rdom = RelayDomainFactory(domain__name="relaydomain.tld")
cls.rdom.domain.type = "relaydomain"
cls.rdom.domain.save()
admin_factories.DomainAliasFactory(
name="relaydomainalias.tld", target=cls.rdom.domain)
admin_factories.MailboxFactory(
@@ -91,7 +93,7 @@ class RelayDomainsTestCase(ModoTestCase, Operations):
FIXME: add a check for domain alias.
"""
self._create_relay_domain('relaydomain1.tld')
rdom = RelayDomain.objects.get(domain__name='relaydomain1.tld')
rdom = models.RelayDomain.objects.get(domain__name='relaydomain1.tld')
self.assertEqual(rdom.target_host, 'external.host.tld')
self.assertEqual(rdom.service.name, 'dummy')
self.assertEqual(rdom.domain.enabled, True)
@@ -138,16 +140,16 @@ class RelayDomainsTestCase(ModoTestCase, Operations):
Rename 'relaydomain.tld' domain to 'relaydomain.org'
"""
values = {
'name': "relaydomain.org", "target_host": self.rdom.target_host,
"name": "relaydomain.org", "target_host": self.rdom.target_host,
"type": "relaydomain", "enabled": True,
"service": self.rdom.service.id
}
self.ajax_post(
reverse('admin:domain_change',
reverse("admin:domain_change",
args=[self.rdom.domain.id]),
values
)
RelayDomain.objects.get(domain__name='relaydomain.org')
models.RelayDomain.objects.get(domain__name='relaydomain.org')
def test_relaydomain_domain_switch(self):
"""Check domain <-> relaydomain transitions."""
@@ -156,12 +158,13 @@ class RelayDomainsTestCase(ModoTestCase, Operations):
"name": "relaydomain.tld",
"type": "domain",
"enabled": True,
"target_host": self.rdom.target_host,
"service": self.rdom.service.pk
}
self.ajax_post(
reverse('admin:domain_change', args=[domain.pk]), values)
reverse("admin:domain_change", args=[domain.pk]), values)
self.assertFalse(
RelayDomain.objects.filter(
domain__name="relaydomain.tld").exists())
models.RelayDomain.objects.filter(domain=domain).exists())
self.assertEqual(
admin_models.Domain.objects.get(name="relaydomain.tld").type,
"domain")
@@ -176,7 +179,7 @@ class RelayDomainsTestCase(ModoTestCase, Operations):
admin_models.Domain.objects.get(name="relaydomain.tld").type,
"relaydomain")
self.assertTrue(
RelayDomain.objects.filter(
models.RelayDomain.objects.filter(
domain__name="relaydomain.tld").exists())
def test_edit_relaydomainalias(self):
@@ -205,16 +208,16 @@ class RelayDomainsTestCase(ModoTestCase, Operations):
args=[self.rdom.domain.id]),
{}
)
with self.assertRaises(RelayDomain.DoesNotExist):
RelayDomain.objects.get(domain__name='relaydomain.tld')
with self.assertRaises(models.RelayDomain.DoesNotExist):
models.RelayDomain.objects.get(domain__name='relaydomain.tld')
def test_delete_relaydomainalias(self):
"""Test the removal of a relay domain alias."""
self._relay_domain_alias_operation(
'del', self.rdom.domain.name, 'relaydomainalias.tld'
)
with self.assertRaises(RelayDomain.DoesNotExist):
RelayDomain.objects.get(domain__name='relaydomainalias.tld')
with self.assertRaises(models.RelayDomain.DoesNotExist):
models.RelayDomain.objects.get(domain__name='relaydomainalias.tld')
def test_alias_on_relaydomain(self):
"""Create an alias on a relay domain."""