diff --git a/netbox/netbox/configuration_testing.py b/netbox/netbox/configuration_testing.py index cec05cabb..346cd89d2 100644 --- a/netbox/netbox/configuration_testing.py +++ b/netbox/netbox/configuration_testing.py @@ -39,6 +39,8 @@ REDIS = { SECRET_KEY = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789' +DJANGO_ADMIN_ENABLED = True + DEFAULT_PERMISSIONS = {} LOGGING = { diff --git a/netbox/netbox/tests/dummy_plugin/navigation.py b/netbox/netbox/tests/dummy_plugin/navigation.py index 4e7bb4be8..803cb67dc 100644 --- a/netbox/netbox/tests/dummy_plugin/navigation.py +++ b/netbox/netbox/tests/dummy_plugin/navigation.py @@ -4,23 +4,23 @@ from netbox.plugins.navigation import PluginMenu, PluginMenuButton, PluginMenuIt items = ( PluginMenuItem( - link='plugins:dummy_plugin:dummy_models', + link='plugins:dummy_plugin:dummy_model_list', link_text='Item 1', buttons=( PluginMenuButton( - link='admin:dummy_plugin_dummymodel_add', - title='Add a new dummy model', + link='plugins:dummy_plugin:dummy_model_add', + title='Button 1', icon_class='mdi mdi-plus-thick', ), PluginMenuButton( - link='admin:dummy_plugin_dummymodel_add', - title='Add a new dummy model', + link='plugins:dummy_plugin:dummy_model_add', + title='Button 2', icon_class='mdi mdi-plus-thick', ), ) ), PluginMenuItem( - link='plugins:dummy_plugin:dummy_models', + link='plugins:dummy_plugin:dummy_model_list', link_text='Item 2', ), ) diff --git a/netbox/netbox/tests/dummy_plugin/urls.py b/netbox/netbox/tests/dummy_plugin/urls.py index 053a7443e..9e383ffe2 100644 --- a/netbox/netbox/tests/dummy_plugin/urls.py +++ b/netbox/netbox/tests/dummy_plugin/urls.py @@ -4,5 +4,6 @@ from . import views urlpatterns = ( - path('models/', views.DummyModelsView.as_view(), name='dummy_models'), + path('models/', views.DummyModelsView.as_view(), name='dummy_model_list'), + path('models/add/', views.DummyModelAddView.as_view(), name='dummy_model_add'), ) diff --git a/netbox/netbox/tests/dummy_plugin/views.py b/netbox/netbox/tests/dummy_plugin/views.py index 03a83b585..f6cf6a5c5 100644 --- a/netbox/netbox/tests/dummy_plugin/views.py +++ b/netbox/netbox/tests/dummy_plugin/views.py @@ -1,3 +1,6 @@ +import random +import string + from django.http import HttpResponse from django.views.generic import View @@ -15,6 +18,20 @@ class DummyModelsView(View): return HttpResponse(f"Instances: {instance_count}") +class DummyModelAddView(View): + + def get(self, request): + return HttpResponse(f"Create an instance") + + def post(self, request): + instance = DummyModel( + name=''.join(random.choices(string.ascii_lowercase, k=8)), + number=random.randint(1, 100000) + ) + instance.save() + return HttpResponse(f"Instance created") + + @register_model_view(Site, 'extra', path='other-stuff') class ExtraCoreModelView(View): diff --git a/netbox/netbox/tests/test_plugins.py b/netbox/netbox/tests/test_plugins.py index e956c00b9..f7aeb7a53 100644 --- a/netbox/netbox/tests/test_plugins.py +++ b/netbox/netbox/tests/test_plugins.py @@ -32,7 +32,6 @@ class PluginTest(TestCase): instance.delete() self.assertIsNone(instance.pk) - @override_settings(DJANGO_ADMIN_ENABLED=True) def test_admin(self): # Test admin view URL resolution @@ -42,7 +41,7 @@ class PluginTest(TestCase): def test_views(self): # Test URL resolution - url = reverse('plugins:dummy_plugin:dummy_models') + url = reverse('plugins:dummy_plugin:dummy_model_list') self.assertEqual(url, '/plugins/dummy-plugin/models/') # Test GET request