Explorar o código

Add test for plugin menu registration

jeremystretch %!s(int64=3) %!d(string=hai) anos
pai
achega
3fbd514417

+ 1 - 1
netbox/extras/plugins/__init__.py

@@ -204,7 +204,7 @@ def register_template_extensions(class_list):
 #
 
 class PluginMenu:
-    icon_class = 'mdi-puzzle'
+    icon_class = 'mdi mdi-puzzle'
 
     def __init__(self, label, groups, icon_class=None):
         self.label = label

+ 8 - 2
netbox/extras/tests/dummy_plugin/navigation.py

@@ -1,7 +1,7 @@
-from extras.plugins import PluginMenuButton, PluginMenuItem
+from extras.plugins import PluginMenu, PluginMenuButton, PluginMenuItem
 
 
-menu_items = (
+items = (
     PluginMenuItem(
         link='plugins:dummy_plugin:dummy_models',
         link_text='Item 1',
@@ -23,3 +23,9 @@ menu_items = (
         link_text='Item 2',
     ),
 )
+
+menu = PluginMenu(
+    label='Dummy',
+    groups=(('Group 1', items),),
+)
+menu_items = items

+ 10 - 1
netbox/extras/tests/test_plugins.py

@@ -5,6 +5,7 @@ from django.core.exceptions import ImproperlyConfigured
 from django.test import Client, TestCase, override_settings
 from django.urls import reverse
 
+from extras.plugins import PluginMenu
 from extras.registry import registry
 from extras.tests.dummy_plugin import config as dummy_config
 from netbox.graphql.schema import Query
@@ -58,9 +59,17 @@ class PluginTest(TestCase):
         response = client.get(url)
         self.assertEqual(response.status_code, 200)
 
+    def test_menu(self):
+        """
+        Check menu registration.
+        """
+        menu = registry['plugins']['menus'][0]
+        self.assertIsInstance(menu, PluginMenu)
+        self.assertEqual(menu.label, 'Dummy')
+
     def test_menu_items(self):
         """
-        Check that plugin MenuItems and MenuButtons are registered.
+        Check menu_items registration.
         """
         self.assertIn('Dummy plugin', registry['plugins']['menu_items'])
         menu_items = registry['plugins']['menu_items']['Dummy plugin']