diff --git a/tests/settings.py b/tests/settings.py index 2f132dc5bf07cafbf208dc42daddd9f3200d47b7..cc82b06aa002c068839e4ca4b376c909489dc23e 100644 --- a/tests/settings.py +++ b/tests/settings.py @@ -6,6 +6,7 @@ INSTALLED_APPS = [ 'django.contrib.auth', 'django.contrib.contenttypes', 'django_kubernetes_probes', + 'tests', ] BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) @@ -18,3 +19,4 @@ DATABASES = { } ROOT_URLCONF = 'tests.urls' +DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' diff --git a/tests/tests.py b/tests/tests.py index 778a29b5f5a741340cf3a8f60006724d0975ac56..54578c3d0d63e8440abccc072cf66845ddfd05a6 100644 --- a/tests/tests.py +++ b/tests/tests.py @@ -2,17 +2,40 @@ import logging from django.test import TestCase from django.urls import reverse +from django.db import connection +from django.contrib.auth import get_user_model + +from tests import models logger = logging.getLogger(__name__) class ProbeTestCase(TestCase): + def drap_table(self, model): + with connection.cursor() as cursor: + cursor.execute(f"DROP TABLE {model._meta.db_table}") + def test_probe_ready(self): - self.assertEqual( - 200, self.client.get(reverse("probes:probe_ready")).status_code - ) + self.assertEqual(200, self.client.get(reverse("probes:probe_ready")).status_code) + + def test_probe_ready_without_user(self): + self.drap_table(get_user_model()) + self.assertEqual(500, self.client.get(reverse("probes:probe_ready")).status_code) + + def test_probe_ready_without_amodel(self): + self.drap_table(models.AModel) + self.assertEqual(500, self.client.get(reverse("probes:probe_ready")).status_code) def test_probe_alive(self): - self.assertEqual( - 200, self.client.get(reverse("probes:probe_alive")).status_code - ) + self.assertEqual(200, self.client.get(reverse("probes:probe_alive")).status_code) + + def test_probe_alive_without_user(self): + self.drap_table(get_user_model()) + self.assertEqual(500, self.client.get(reverse("probes:probe_alive")).status_code) + + def test_probe_alive_without_amodel(self): + """ + for alive-ness we only look at user, other missing table in the db does not cause an error + """ + self.drap_table(models.AModel) + self.assertEqual(200, self.client.get(reverse("probes:probe_alive")).status_code)