""" Tests for :py:mod:`domains.models`. """ from __future__ import absolute_import, unicode_literals from mock import patch from django.test import TestCase from django.contrib.auth import get_user_model from domains.models import ( DNSComment, DNSCryptoKey, DNSDomain, DNSDomainMetadata, DNSRecord, DNSSupermaster, DNSTSIGKey, DomainBase, HostingDomain, MailDomain, ) from hostingpackages.models import ( CustomerHostingPackage, HostingPackageTemplate, ) User = get_user_model() TEST_USER = 'test' class DomainBaseTest(TestCase): def test___str__(self): db = DomainBase(domain='test') self.assertEqual(str(db), 'test') class MailDomainTest(TestCase): def test___str__(self): md = MailDomain.objects.create(domain='example.org') self.assertEqual(str(md), 'example.org') def test_get_mailaddresses(self): md = MailDomain.objects.create(domain='example.org') from managemails.models import MailAddress addrmock = MailAddress(localpart='info') md.mailaddress_set.add(addrmock) self.assertIn(addrmock, md.get_mailaddresses()) self.assertIn(addrmock, md.mailaddresses) class HostingDomainManagerTest(TestCase): def _setup_hosting_package(self): template = HostingPackageTemplate.objects.create( name='testpackagetemplate', mailboxcount=0, diskspace=1, diskspace_unit=0) customer = User.objects.create_user(username=TEST_USER) package = CustomerHostingPackage.objects.create_from_template( customer, template, 'testpackage') with patch('hostingpackages.models.settings') as hmsettings: hmsettings.OSUSER_DEFAULT_GROUPS = [] package.save() return package def test_create_for_hosting_package_with_commit(self): package = self._setup_hosting_package() hostingdomain = HostingDomain.objects.create_for_hosting_package( package, 'example.org', True) self.assertIsNotNone(hostingdomain) self.assertTrue(hostingdomain.customer, package.customer) def test_create_for_hosting_package_no_commit(self): package = self._setup_hosting_package() hostingdomain = HostingDomain.objects.create_for_hosting_package( package, 'example.org', False) self.assertIsNotNone(hostingdomain) self.assertTrue(hostingdomain.customer, package.customer) class HostingDomainTest(TestCase): def test___str__(self): hostingdomain = HostingDomain(domain='test') self.assertEqual(str(hostingdomain), 'test') class DNSDomainTest(TestCase): def test___str__(self): dnsdomain = DNSDomain(domain='test') self.assertEqual(str(dnsdomain), 'test') class DNSRecordTest(TestCase): def test___str__(self): dnsrecord = DNSRecord( name='localhost', recordtype='A', content='127.0.0.1') self.assertEqual(str(dnsrecord), 'localhost IN A 127.0.0.1') class DNSSupermasterTest(TestCase): def test___str__(self): dnssupermaster = DNSSupermaster( ip='127.0.0.1', nameserver='dns.example.org') self.assertEqual(str(dnssupermaster), '127.0.0.1 dns.example.org') class DNSCommentTest(TestCase): def test___str__(self): dnscomment = DNSComment( name='localhost', commenttype='A', comment='good stuff') self.assertEqual(str(dnscomment), 'localhost IN A: good stuff') class DNSDomainMetadataTest(TestCase): def test___str__(self): dnsdomain = DNSDomain(domain='test') dnsdomainmetadata = DNSDomainMetadata( domain=dnsdomain, kind='SOA-EDIT', content='INCEPTION') self.assertEqual(str(dnsdomainmetadata), 'test SOA-EDIT INCEPTION') class DNSCryptoKeyTest(TestCase): def test___str__(self): dnsdomain = DNSDomain(domain='test') dnscryptokey = DNSCryptoKey(domain=dnsdomain, content='testvalue') self.assertEqual(str(dnscryptokey), 'test testvalue') class DNSTSIGKeyTest(TestCase): def test___str__(self): dnstsigkey = DNSTSIGKey( name='testkey', algorithm='hmac-md5', secret='dummykey') self.assertEqual(str(dnstsigkey), 'testkey hmac-md5 XXXX')