mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
Add tests for invalid import data
This commit is contained in:
@ -5,6 +5,7 @@ from django.test import Client, TestCase
|
|||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
from rest_framework import status
|
from rest_framework import status
|
||||||
|
|
||||||
|
from dcim.forms import SiteCSVForm
|
||||||
from dcim.models import Site
|
from dcim.models import Site
|
||||||
from extras.choices import *
|
from extras.choices import *
|
||||||
from extras.models import CustomField, CustomFieldValue, CustomFieldChoice
|
from extras.models import CustomField, CustomFieldValue, CustomFieldChoice
|
||||||
@ -444,3 +445,33 @@ class CustomFieldImportTest(TestCase):
|
|||||||
site3 = Site.objects.get(name='Site 3')
|
site3 = Site.objects.get(name='Site 3')
|
||||||
self.assertFalse(CustomFieldValue.objects.filter(obj_type=obj_type, obj_id=site3.pk).exists())
|
self.assertFalse(CustomFieldValue.objects.filter(obj_type=obj_type, obj_id=site3.pk).exists())
|
||||||
self.assertEqual(CustomFieldValue.objects.count(), 12) # Sanity check
|
self.assertEqual(CustomFieldValue.objects.count(), 12) # Sanity check
|
||||||
|
|
||||||
|
def test_import_missing_required(self):
|
||||||
|
"""
|
||||||
|
Attempt to import an object missing a required custom field.
|
||||||
|
"""
|
||||||
|
# Set one of our CustomFields to required
|
||||||
|
CustomField.objects.filter(name='text').update(required=True)
|
||||||
|
|
||||||
|
form_data = {
|
||||||
|
'name': 'Site 1',
|
||||||
|
'slug': 'site-1',
|
||||||
|
}
|
||||||
|
|
||||||
|
form = SiteCSVForm(data=form_data)
|
||||||
|
self.assertFalse(form.is_valid())
|
||||||
|
self.assertIn('cf_text', form.errors)
|
||||||
|
|
||||||
|
def test_import_invalid_choice(self):
|
||||||
|
"""
|
||||||
|
Attempt to import an object with an invalid choice selection.
|
||||||
|
"""
|
||||||
|
form_data = {
|
||||||
|
'name': 'Site 1',
|
||||||
|
'slug': 'site-1',
|
||||||
|
'cf_select': 'Choice X'
|
||||||
|
}
|
||||||
|
|
||||||
|
form = SiteCSVForm(data=form_data)
|
||||||
|
self.assertFalse(form.is_valid())
|
||||||
|
self.assertIn('cf_select', form.errors)
|
||||||
|
Reference in New Issue
Block a user