1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

Add test for plugin menu registration

This commit is contained in:
jeremystretch
2022-09-28 16:57:40 -04:00
parent d0465242a3
commit 3fbd514417
3 changed files with 19 additions and 4 deletions

View File

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

View File

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

View File

@ -5,6 +5,7 @@ from django.core.exceptions import ImproperlyConfigured
from django.test import Client, TestCase, override_settings from django.test import Client, TestCase, override_settings
from django.urls import reverse from django.urls import reverse
from extras.plugins import PluginMenu
from extras.registry import registry from extras.registry import registry
from extras.tests.dummy_plugin import config as dummy_config from extras.tests.dummy_plugin import config as dummy_config
from netbox.graphql.schema import Query from netbox.graphql.schema import Query
@ -58,9 +59,17 @@ class PluginTest(TestCase):
response = client.get(url) response = client.get(url)
self.assertEqual(response.status_code, 200) 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): 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']) self.assertIn('Dummy plugin', registry['plugins']['menu_items'])
menu_items = registry['plugins']['menu_items']['Dummy plugin'] menu_items = registry['plugins']['menu_items']['Dummy plugin']