Răsfoiți Sursa

Add initial tests for dynamic config

jeremystretch 4 ani în urmă
părinte
comite
d67d3f8d6d
1 a modificat fișierele cu 44 adăugiri și 0 ștergeri
  1. 44 0
      netbox/netbox/tests/test_config.py

+ 44 - 0
netbox/netbox/tests/test_config.py

@@ -0,0 +1,44 @@
+from django.core.cache import cache
+from django.test import TestCase
+
+from extras.models import ConfigRevision
+from netbox.config import clear_config, get_config
+
+
+class ConfigTestCase(TestCase):
+
+    def test_config_init_empty(self):
+        cache.clear()
+
+        config = get_config()
+        self.assertEqual(config.config, {})
+        self.assertEqual(config.version, None)
+
+        clear_config()
+
+    def test_config_init_from_db(self):
+        CONFIG_DATA = {'BANNER_TOP': 'A'}
+        cache.clear()
+
+        # Create a config but don't load it into the cache
+        configrevision = ConfigRevision.objects.create(data=CONFIG_DATA)
+
+        config = get_config()
+        self.assertEqual(config.config, CONFIG_DATA)
+        self.assertEqual(config.version, configrevision.pk)
+
+        clear_config()
+
+    def test_config_init_from_cache(self):
+        CONFIG_DATA = {'BANNER_TOP': 'B'}
+        cache.clear()
+
+        # Create a config and load it into the cache
+        configrevision = ConfigRevision.objects.create(data=CONFIG_DATA)
+        configrevision.activate()
+
+        config = get_config()
+        self.assertEqual(config.config, CONFIG_DATA)
+        self.assertEqual(config.version, configrevision.pk)
+
+        clear_config()