Ryan Merolle 108fbb6751
NetBox 3.5 Support (#148)
* NetBox 3.5 updates
2023-06-23 14:41:42 -04:00

98 lines
3.3 KiB
Python

from dcim.models import Device, DeviceRole, DeviceType, Manufacturer, Site
from django.contrib.contenttypes.models import ContentType
from django.urls import reverse
from rest_framework import status
from utilities.testing import APITestCase, APIViewTestCases
from netbox_acls.choices import *
from netbox_acls.models import *
class AppTest(APITestCase):
def test_root(self):
url = reverse("plugins-api:netbox_acls-api:api-root")
response = self.client.get(f"{url}?format=api", **self.header)
self.assertEqual(response.status_code, status.HTTP_200_OK)
class ACLTestCase(
APIViewTestCases.APIViewTestCase,
):
"""Test the AccessList Test"""
model = AccessList
view_namespace = "plugins-api:netbox_acls"
brief_fields = ["display", "id", "name", "url"]
@classmethod
def setUpTestData(cls):
site = Site.objects.create(name="Site 1", slug="site-1")
manufacturer = Manufacturer.objects.create(
name="Manufacturer 1",
slug="manufacturer-1",
)
devicetype = DeviceType.objects.create(
manufacturer=manufacturer,
model="Device Type 1",
)
devicerole = DeviceRole.objects.create(
name="Device Role 1",
slug="device-role-1",
)
device = Device.objects.create(
name="Device 1",
site=site,
device_type=devicetype,
device_role=devicerole,
)
access_lists = (
AccessList(
name="testacl1",
assigned_object_type=ContentType.objects.get_for_model(Device),
assigned_object_id=device.id,
type=ACLTypeChoices.TYPE_STANDARD,
default_action=ACLActionChoices.ACTION_DENY,
),
AccessList(
name="testacl2",
assigned_object_type=ContentType.objects.get_for_model(Device),
assigned_object_id=device.id,
type=ACLTypeChoices.TYPE_STANDARD,
default_action=ACLActionChoices.ACTION_DENY,
),
AccessList(
name="testacl3",
assigned_object_type=ContentType.objects.get_for_model(Device),
assigned_object_id=device.id,
type=ACLTypeChoices.TYPE_STANDARD,
default_action=ACLActionChoices.ACTION_DENY,
),
)
AccessList.objects.bulk_create(access_lists)
cls.create_data = [
{
"name": "testacl4",
"assigned_object_type": "dcim.device",
"assigned_object_id": device.id,
"type": ACLTypeChoices.TYPE_STANDARD,
"default_action": ACLActionChoices.ACTION_DENY,
},
{
"name": "testacl5",
"assigned_object_type": "dcim.device",
"assigned_object_id": device.id,
"type": ACLTypeChoices.TYPE_EXTENDED,
"default_action": ACLActionChoices.ACTION_DENY,
},
{
"name": "testacl6",
"assigned_object_type": "dcim.device",
"assigned_object_id": device.id,
"type": ACLTypeChoices.TYPE_STANDARD,
"default_action": ACLActionChoices.ACTION_DENY,
},
]