From d67d3f8d6d7c58c3afe21cdceef2802832255047 Mon Sep 17 00:00:00 2001 From: jeremystretch Date: Wed, 27 Oct 2021 15:58:54 -0400 Subject: [PATCH] Add initial tests for dynamic config --- netbox/netbox/tests/test_config.py | 44 ++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 netbox/netbox/tests/test_config.py diff --git a/netbox/netbox/tests/test_config.py b/netbox/netbox/tests/test_config.py new file mode 100644 index 000000000..a7ec9806d --- /dev/null +++ b/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()