1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00
Jeremy Stretch ee4c5ef64a Fix CI tests
2020-04-02 15:11:19 -04:00

76 lines
2.4 KiB
Python

from django.conf import settings
from django.test import Client, TestCase, override_settings
from django.urls import reverse
from extras.registry import registry
from extras.tests.dummy_plugin.models import DummyModel
from extras.tests.dummy_plugin.template_content import SiteContent
class PluginTest(TestCase):
def test_config(self):
self.assertIn('extras.tests.dummy_plugin.DummyPluginConfig', settings.INSTALLED_APPS)
def test_models(self):
# Test saving an instance
instance = DummyModel(name='Instance 1', number=100)
instance.save()
self.assertIsNotNone(instance.pk)
# Test deleting an instance
instance.delete()
self.assertIsNone(instance.pk)
def test_admin(self):
# Test admin view URL resolution
url = reverse('admin:dummy_plugin_dummymodel_add')
self.assertEqual(url, '/admin/dummy_plugin/dummymodel/add/')
def test_views(self):
# Test URL resolution
url = reverse('plugins:dummy_plugin:dummy_models')
self.assertEqual(url, '/plugins/dummy-plugin/models/')
# Test GET request
client = Client()
response = client.get(url)
self.assertEqual(response.status_code, 200)
@override_settings(EXEMPT_VIEW_PERMISSIONS=['*'])
def test_api_views(self):
# Test URL resolution
url = reverse('plugins-api:dummy_plugin-api:dummymodel-list')
self.assertEqual(url, '/api/plugins/dummy-plugin/dummy-models/')
# Test GET request
client = Client()
response = client.get(url)
self.assertEqual(response.status_code, 200)
def test_menu_items(self):
"""
Check that plugin MenuItems and MenuButtons are registered.
"""
self.assertIn('Dummy plugin', registry['plugin_menu_items'])
menu_items = registry['plugin_menu_items']['Dummy plugin']
self.assertEqual(len(menu_items), 2)
self.assertEqual(len(menu_items[0].buttons), 2)
def test_template_extensions(self):
"""
Check that plugin TemplateExtensions are registered.
"""
self.assertIn(SiteContent, registry['plugin_template_extensions']['dcim.site'])
def test_middleware(self):
"""
Check that plugin middleware is registered.
"""
self.assertIn('extras.tests.dummy_plugin.middleware.DummyMiddleware', settings.MIDDLEWARE)