#!/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())