Files
pda-next/src/pdns/test_models.py
Rens Houben b4521852a9
All checks were successful
pda-new unit tests / Run-unit-tests (push) Successful in 7s
Removed broken environ package
2025-10-20 21:32:16 +02:00

74 lines
2.6 KiB
Python

#!/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)
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)
self.assertFalse(test_context.available())