mirror of
https://github.com/jwinterm/modoboa.git
synced 2026-10-17 05:41:25 +02:00
Added unit test.
This commit is contained in:
@@ -81,6 +81,16 @@ class AlarmFactory(factory.django.DjangoModelFactory):
|
||||
model = models.Alarm
|
||||
|
||||
|
||||
class MXRecordFactory(factory.django.DjangoModelFactory):
|
||||
"""Factory for MXRecord model."""
|
||||
|
||||
domain = factory.SubFactory(DomainFactory)
|
||||
address = "127.0.0.1"
|
||||
|
||||
class Meta:
|
||||
model = models.MXRecord
|
||||
|
||||
|
||||
def populate_database():
|
||||
"""Create test data.
|
||||
|
||||
|
||||
@@ -188,27 +188,27 @@ class Domain(mixins.MessageLimitMixin, AdminObject):
|
||||
else:
|
||||
return "success"
|
||||
|
||||
@cached_property
|
||||
@property
|
||||
def spf_record(self):
|
||||
"""Return SPF record."""
|
||||
return self.dnsrecord_set.filter(type="spf").first()
|
||||
|
||||
@cached_property
|
||||
@property
|
||||
def dkim_record(self):
|
||||
"""Return DKIM record."""
|
||||
return self.dnsrecord_set.filter(type="dkim").first()
|
||||
|
||||
@cached_property
|
||||
@property
|
||||
def dmarc_record(self):
|
||||
"""Return DMARC record."""
|
||||
return self.dnsrecord_set.filter(type="dmarc").first()
|
||||
|
||||
@cached_property
|
||||
@property
|
||||
def autoconfig_record(self):
|
||||
"""Return autoconfig record."""
|
||||
return self.dnsrecord_set.filter(type="autoconfig").first()
|
||||
|
||||
@cached_property
|
||||
@property
|
||||
def autodiscover_record(self):
|
||||
"""Return autodiscover record."""
|
||||
return self.dnsrecord_set.filter(type="autodiscover").first()
|
||||
|
||||
@@ -4,7 +4,6 @@ import datetime
|
||||
|
||||
from django.db import models
|
||||
from django.utils import timezone
|
||||
from django.utils.encoding import python_2_unicode_compatible
|
||||
|
||||
from modoboa.parameters import tools as param_tools
|
||||
|
||||
@@ -52,7 +51,6 @@ class MXRecordManager(models.Manager):
|
||||
yield record
|
||||
|
||||
|
||||
@python_2_unicode_compatible
|
||||
class MXRecord(models.Model):
|
||||
"""A model used to store MX records for Domain."""
|
||||
|
||||
|
||||
@@ -2,11 +2,14 @@
|
||||
|
||||
from unittest import mock
|
||||
|
||||
from django.urls import reverse
|
||||
from django.test import SimpleTestCase
|
||||
from django.urls import reverse
|
||||
from django.utils import timezone
|
||||
|
||||
from dns.rdtypes.ANY.TXT import TXT
|
||||
|
||||
from modoboa.admin import factories as admin_factories
|
||||
from modoboa.admin import models as admin_models
|
||||
from modoboa.lib.tests import ModoTestCase
|
||||
|
||||
from . import factories
|
||||
@@ -175,3 +178,43 @@ class ViewsTestCase(ModoTestCase):
|
||||
"dnstools:domain_dns_configuration", args=[self.ac_rec.domain.pk])
|
||||
response = self.client.get(url)
|
||||
self.assertContains(response, "[IP address of your Modoboa server]")
|
||||
|
||||
|
||||
class DomainTestCase(ModoTestCase):
|
||||
|
||||
def test_dns_global_status(self):
|
||||
admin_factories.MXRecordFactory.create(
|
||||
domain__name="test.com", name="mail.test.com",
|
||||
updated=timezone.now())
|
||||
domain = admin_models.Domain.objects.get(name="test.com")
|
||||
self.assertEqual(domain.dns_global_status, "critical")
|
||||
|
||||
factories.DNSRecordFactory.create(
|
||||
type="spf", value="v=SPF1 mx -all", is_valid=True,
|
||||
domain__name="test.com"
|
||||
)
|
||||
self.assertEqual(domain.dns_global_status, "critical")
|
||||
|
||||
factories.DNSRecordFactory(
|
||||
type="dkim", value="12345", is_valid=True,
|
||||
domain__name="test.com"
|
||||
)
|
||||
self.assertEqual(domain.dns_global_status, "critical")
|
||||
|
||||
factories.DNSRecordFactory(
|
||||
type="dmarc", value="XXX", is_valid=True,
|
||||
domain__name="test.com"
|
||||
)
|
||||
self.assertEqual(domain.dns_global_status, "critical")
|
||||
|
||||
factories.DNSRecordFactory(
|
||||
type="autoconfig", value="1.2.3.4", is_valid=True,
|
||||
domain__name="test.com"
|
||||
)
|
||||
self.assertEqual(domain.dns_global_status, "critical")
|
||||
|
||||
factories.DNSRecordFactory(
|
||||
type="autodiscover", value="1.2.3.4", is_valid=True,
|
||||
domain__name="test.com"
|
||||
)
|
||||
self.assertEqual(domain.dns_global_status, "ok")
|
||||
|
||||
Reference in New Issue
Block a user