32 lines
1.1 KiB
Python
32 lines
1.1 KiB
Python
from django.test import TestCase, Client
|
|
from django.contrib.auth import get_user_model
|
|
from django.urls import reverse
|
|
from unittest.mock import patch
|
|
|
|
from domains.models import Domain
|
|
from core.models import SystemSettings
|
|
|
|
|
|
User = get_user_model()
|
|
|
|
|
|
class DNSCheckTests(TestCase):
|
|
def setUp(self):
|
|
self.user = User.objects.create_user(username='u1', email='u1@example.com', password='p')
|
|
SystemSettings.objects.create(cname_template='{sub}.cdn.example.com')
|
|
self.domain = Domain.objects.create(
|
|
user=self.user,
|
|
name='example.com',
|
|
status=Domain.STATUS_PENDING,
|
|
cname_targets={'www.example.com': 'www.cdn.example.com'},
|
|
)
|
|
|
|
def test_dns_check_updates_status(self):
|
|
c = Client()
|
|
c.login(username='u1', password='p')
|
|
with patch('core.utils.resolve_cname', return_value=['www.cdn.example.com']):
|
|
resp = c.post(reverse('domains:check_dns', kwargs={'domain_id': self.domain.id}))
|
|
self.assertEqual(resp.status_code, 200)
|
|
self.domain.refresh_from_db()
|
|
self.assertEqual(self.domain.status, Domain.STATUS_ACTIVE)
|