mirror of
https://github.com/netbox-community/netbox.git
synced 2025-08-18 13:38:16 -06:00
14132 fix api tests
This commit is contained in:
parent
92d9e86ecc
commit
6549dce758
@ -10,6 +10,7 @@ __all__ = [
|
|||||||
'NestedCustomFieldChoiceSetSerializer',
|
'NestedCustomFieldChoiceSetSerializer',
|
||||||
'NestedCustomFieldSerializer',
|
'NestedCustomFieldSerializer',
|
||||||
'NestedCustomLinkSerializer',
|
'NestedCustomLinkSerializer',
|
||||||
|
'NestedEventRuleSerializer',
|
||||||
'NestedExportTemplateSerializer',
|
'NestedExportTemplateSerializer',
|
||||||
'NestedImageAttachmentSerializer',
|
'NestedImageAttachmentSerializer',
|
||||||
'NestedJournalEntrySerializer',
|
'NestedJournalEntrySerializer',
|
||||||
@ -19,6 +20,13 @@ __all__ = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
class NestedEventRuleSerializer(WritableNestedSerializer):
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = models.EventRule
|
||||||
|
fields = ['id', 'display', 'name']
|
||||||
|
|
||||||
|
|
||||||
class NestedWebhookSerializer(WritableNestedSerializer):
|
class NestedWebhookSerializer(WritableNestedSerializer):
|
||||||
url = serializers.HyperlinkedIdentityField(view_name='extras-api:webhook-detail')
|
url = serializers.HyperlinkedIdentityField(view_name='extras-api:webhook-detail')
|
||||||
|
|
||||||
|
@ -68,6 +68,9 @@ class EventRuleSerializer(NetBoxModelSerializer):
|
|||||||
many=True
|
many=True
|
||||||
)
|
)
|
||||||
action_type = ChoiceField(choices=EventRuleActionChoices)
|
action_type = ChoiceField(choices=EventRuleActionChoices)
|
||||||
|
action_object_type = ContentTypeField(
|
||||||
|
queryset=ContentType.objects.with_feature('event_rules'),
|
||||||
|
)
|
||||||
action_object = serializers.SerializerMethodField(read_only=True)
|
action_object = serializers.SerializerMethodField(read_only=True)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
|
@ -72,3 +72,9 @@ class ExtrasQuery(graphene.ObjectType):
|
|||||||
|
|
||||||
def resolve_webhook_list(root, info, **kwargs):
|
def resolve_webhook_list(root, info, **kwargs):
|
||||||
return gql_query_optimizer(models.Webhook.objects.all(), info)
|
return gql_query_optimizer(models.Webhook.objects.all(), info)
|
||||||
|
|
||||||
|
event_rule = ObjectField(EventRuleType)
|
||||||
|
event_rule_list = ObjectListField(EventRuleType)
|
||||||
|
|
||||||
|
def resolve_eventrule_list(root, info, **kwargs):
|
||||||
|
return gql_query_optimizer(models.EventRule.objects.all(), info)
|
||||||
|
@ -8,6 +8,7 @@ from rest_framework import status
|
|||||||
|
|
||||||
from core.choices import ManagedFileRootPathChoices
|
from core.choices import ManagedFileRootPathChoices
|
||||||
from dcim.models import Device, DeviceRole, DeviceType, Manufacturer, Rack, Location, RackRole, Site
|
from dcim.models import Device, DeviceRole, DeviceType, Manufacturer, Rack, Location, RackRole, Site
|
||||||
|
from extras.choices import *
|
||||||
from extras.models import *
|
from extras.models import *
|
||||||
from extras.reports import Report
|
from extras.reports import Report
|
||||||
from extras.scripts import BooleanVar, IntegerVar, Script, StringVar
|
from extras.scripts import BooleanVar, IntegerVar, Script, StringVar
|
||||||
@ -68,6 +69,79 @@ class WebhookTest(APIViewTestCases.APIViewTestCase):
|
|||||||
Webhook.objects.bulk_create(webhooks)
|
Webhook.objects.bulk_create(webhooks)
|
||||||
|
|
||||||
|
|
||||||
|
class EventRuleTest(APIViewTestCases.APIViewTestCase):
|
||||||
|
model = EventRule
|
||||||
|
brief_fields = ['display', 'id', 'name',]
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def setUpTestData(cls):
|
||||||
|
webhooks = (
|
||||||
|
Webhook(
|
||||||
|
name='Webhook 1',
|
||||||
|
payload_url='http://example.com/?1',
|
||||||
|
),
|
||||||
|
Webhook(
|
||||||
|
name='Webhook 2',
|
||||||
|
payload_url='http://example.com/?1',
|
||||||
|
),
|
||||||
|
Webhook(
|
||||||
|
name='Webhook 3',
|
||||||
|
payload_url='http://example.com/?1',
|
||||||
|
),
|
||||||
|
Webhook(
|
||||||
|
name='Webhook 4',
|
||||||
|
payload_url='http://example.com/?1',
|
||||||
|
),
|
||||||
|
Webhook(
|
||||||
|
name='Webhook 5',
|
||||||
|
payload_url='http://example.com/?1',
|
||||||
|
),
|
||||||
|
Webhook(
|
||||||
|
name='Webhook 6',
|
||||||
|
payload_url='http://example.com/?1',
|
||||||
|
),
|
||||||
|
)
|
||||||
|
Webhook.objects.bulk_create(webhooks)
|
||||||
|
|
||||||
|
def setUp(self):
|
||||||
|
super().setUp()
|
||||||
|
|
||||||
|
webhooks = Webhook.objects.all()
|
||||||
|
event_rules = (
|
||||||
|
EventRule(name='EventRule 1', action_object=webhooks[0]),
|
||||||
|
EventRule(name='EventRule 2', action_object=webhooks[1]),
|
||||||
|
EventRule(name='EventRule 3', action_object=webhooks[2]),
|
||||||
|
)
|
||||||
|
EventRule.objects.bulk_create(event_rules)
|
||||||
|
|
||||||
|
self.create_data = [
|
||||||
|
{
|
||||||
|
'name': 'EventRule 4',
|
||||||
|
'content_types': ['dcim.device', 'dcim.devicetype'],
|
||||||
|
'type_create': True,
|
||||||
|
'action_type': EventRuleActionChoices.WEBHOOK,
|
||||||
|
'action_object_type': 'extras.webhook',
|
||||||
|
'action_object_id': webhooks[3].pk,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'name': 'EventRule 5',
|
||||||
|
'content_types': ['dcim.device', 'dcim.devicetype'],
|
||||||
|
'type_create': True,
|
||||||
|
'action_type': EventRuleActionChoices.WEBHOOK,
|
||||||
|
'action_object_type': 'extras.webhook',
|
||||||
|
'action_object_id': webhooks[4].pk,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'name': 'EventRule 6',
|
||||||
|
'content_types': ['dcim.device', 'dcim.devicetype'],
|
||||||
|
'type_create': True,
|
||||||
|
'action_type': EventRuleActionChoices.WEBHOOK,
|
||||||
|
'action_object_type': 'extras.webhook',
|
||||||
|
'action_object_id': webhooks[5].pk,
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
class CustomFieldTest(APIViewTestCases.APIViewTestCase):
|
class CustomFieldTest(APIViewTestCases.APIViewTestCase):
|
||||||
model = CustomField
|
model = CustomField
|
||||||
brief_fields = ['display', 'id', 'name', 'url']
|
brief_fields = ['display', 'id', 'name', 'url']
|
||||||
|
Loading…
Reference in New Issue
Block a user