Files
pda-next/src/pdns/test_models.py

74 lines
2.6 KiB
Python
Raw Normal View History

#!/usr/bin/python3
from django.test import TestCase
from django.utils.timezone import now
from django.utils.translation import gettext as _
from unittest import skip
from .models import (
PDNSContext,
PDNSServer
)
# Tests are run in transactions, which means that for every test_*() function
# the database restores to what's created during setUp()
class PDNSModelTestCase(TestCase):
def setUp(self):
self.test_time = now()
tc = PDNSContext.objects.create(name='test context')
PDNSServer.objects.create(name='test server',
server_uri='https://localhost:8081',
context=tc,
online=True,
last_seen=self.test_time,
last_checked=self.test_time)
self.context_target = 'test context'
self.server_target = 'test server (test context): https://localhost:8081'
self.server_status_target = _('%(status)s since %(date)s') % {
'status': _('Online'),
'date': self.test_time
}
self.server_status_offline_target = _('%(status)s since %(date)s') % {
'status': _('Offline'),
'date': self.test_time
}
return True
def test_server(self):
test_server = PDNSServer.objects.get(name='test server')
self.assertEqual(test_server.__str__(), self.server_target)
self.assertEqual(test_server.status(), self.server_status_target)
def test_server_offline(self):
test_server = PDNSServer.objects.get(name='test server')
test_server.online = False
self.assertEqual(test_server.status(), self.server_status_offline_target)
def test_context(self):
test_context = PDNSContext.objects.get(name='test context')
self.assertEqual(test_context.__str__(), self.context_target)
def test_context_onoff(self):
test_context = PDNSContext.objects.get(name='test context')
self.assertEqual(test_context.total_servers(),1)
self.assertEqual(test_context.online_servers(),1)
self.assertEqual(test_context.offline_servers(),0)
2025-10-20 21:32:16 +02:00
self.assertTrue(test_context.available())
def test_context_offline(self):
test_context = PDNSContext.objects.get(name='test context')
test_server = PDNSServer.objects.get(name='test server')
test_server.online = False
test_server.save()
self.assertEqual(test_context.total_servers(),1)
self.assertEqual(test_context.online_servers(),0)
self.assertEqual(test_context.offline_servers(),1)
2025-10-20 21:32:16 +02:00
self.assertFalse(test_context.available())