From bb165f67c7a2ad52ded75f93fce34d073e47d103 Mon Sep 17 00:00:00 2001
From: Bryan Brancotte <bryan.brancotte@pasteur.fr>
Date: Thu, 11 Jan 2024 14:31:40 +0100
Subject: [PATCH] more tests

---
 tests/settings.py |  2 ++
 tests/tests.py    | 35 +++++++++++++++++++++++++++++------
 2 files changed, 31 insertions(+), 6 deletions(-)

diff --git a/tests/settings.py b/tests/settings.py
index 2f132dc..cc82b06 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 778a29b..54578c3 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)
-- 
GitLab