mirror of
https://github.com/jwinterm/modoboa.git
synced 2026-10-17 05:41:25 +02:00
Fixed tests.
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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...
|
||||
|
||||
@@ -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."""
|
||||
|
||||
Reference in New Issue
Block a user