mirror of
https://github.com/netbox-community/netbox.git
synced 2025-08-24 08:25:17 -06:00
Refactor test
This commit is contained in:
parent
0c8712aeaa
commit
0de4fdde60
@ -428,120 +428,95 @@ class CustomFieldTest(TestCase):
|
|||||||
self.assertEqual(site.custom_field_data['field2'], FIELD_DATA)
|
self.assertEqual(site.custom_field_data['field2'], FIELD_DATA)
|
||||||
|
|
||||||
def test_default_value_validation(self):
|
def test_default_value_validation(self):
|
||||||
choiceset = CustomFieldChoiceSet.objects.create(name="Test Choice Set", extra_choices=(('choice1', 'Choice 1'), ('choice2', 'Choice 2')))
|
choiceset = CustomFieldChoiceSet.objects.create(
|
||||||
site = Site.objects.create(
|
name="Test Choice Set",
|
||||||
name='Site 1',
|
extra_choices=(
|
||||||
slug='site-1'
|
('choice1', 'Choice 1'),
|
||||||
|
('choice2', 'Choice 2'),
|
||||||
)
|
)
|
||||||
|
)
|
||||||
|
site = Site.objects.create(name='Site 1', slug='site-1')
|
||||||
object_type = ContentType.objects.get_for_model(Site)
|
object_type = ContentType.objects.get_for_model(Site)
|
||||||
|
|
||||||
cfs = (
|
# Text
|
||||||
# Test Text
|
CustomField(name='test', type='text', required=True, default="Default text").full_clean()
|
||||||
(
|
|
||||||
# Should Pass
|
|
||||||
CustomField(name='test', type='text', required=True, default="Test Text"),
|
|
||||||
),
|
|
||||||
# Test Integer
|
|
||||||
(
|
|
||||||
# Should Pass
|
|
||||||
CustomField(name='test', type='integer', required=True, default=1),
|
|
||||||
# Should Fail
|
|
||||||
CustomField(name='test', type='integer', required=True, default="Not a Integer"),
|
|
||||||
),
|
|
||||||
|
|
||||||
# Test Boolean
|
# Integer
|
||||||
(
|
CustomField(name='test', type='integer', required=True, default=1).full_clean()
|
||||||
# Should Pass
|
with self.assertRaises(ValidationError):
|
||||||
CustomField(name='test', type='boolean', required=True, default=True),
|
CustomField(name='test', type='integer', required=True, default='xxx').full_clean()
|
||||||
# Should Fail
|
|
||||||
CustomField(name='test', type='boolean', required=True, default="Not a Boolean"),
|
# Boolean
|
||||||
),
|
CustomField(name='test', type='boolean', required=True, default=True).full_clean()
|
||||||
# Test Date
|
with self.assertRaises(ValidationError):
|
||||||
(
|
CustomField(name='test', type='boolean', required=True, default='xxx').full_clean()
|
||||||
# Should Pass
|
|
||||||
CustomField(name='test', type='date', required=True, default="2023-02-25"),
|
# Date
|
||||||
# Should Fail
|
CustomField(name='test', type='date', required=True, default="2023-02-25").full_clean()
|
||||||
CustomField(name='test', type='date', required=True, default="Not a Date"),
|
with self.assertRaises(ValidationError):
|
||||||
),
|
CustomField(name='test', type='date', required=True, default='xxx').full_clean()
|
||||||
# Test Date + Time
|
|
||||||
(
|
# Datetime
|
||||||
# Should Pass
|
CustomField(name='test', type='datetime', required=True, default="2023-02-25 02:02:02").full_clean()
|
||||||
CustomField(name='test', type='datetime', required=True, default="2023-02-25 02:02:02"),
|
with self.assertRaises(ValidationError):
|
||||||
# Should Fail
|
CustomField(name='test', type='datetime', required=True, default='xxx').full_clean()
|
||||||
CustomField(name='test', type='datetime', required=True, default="Not a DateTime"),
|
|
||||||
),
|
# URL
|
||||||
# Test URL
|
CustomField(name='test', type='url', required=True, default="https://www.netbox.dev").full_clean()
|
||||||
(
|
|
||||||
# Should Pass
|
# JSON
|
||||||
CustomField(name='test', type='url', required=True, default="https://www.netbox.dev"),
|
CustomField(name='test', type='json', required=True, default='{"test": "object"}').full_clean()
|
||||||
),
|
|
||||||
# Test JSON
|
# Selection
|
||||||
(
|
CustomField(name='test', type='select', required=True, choice_set=choiceset, default='choice1').full_clean()
|
||||||
# Should Pass
|
with self.assertRaises(ValidationError):
|
||||||
CustomField(name='test', type='json', required=True, default='{"test": "object"}'),
|
CustomField(name='test', type='select', required=True, choice_set=choiceset, default='xxx').full_clean()
|
||||||
),
|
|
||||||
# Test Selection
|
# Multi-select
|
||||||
(
|
|
||||||
# Should Pass
|
|
||||||
CustomField(name='test', type='select', required=True, choice_set=choiceset, default='choice1'),
|
|
||||||
# Should Fail
|
|
||||||
CustomField(
|
|
||||||
name='test',
|
|
||||||
type='select',
|
|
||||||
required=True,
|
|
||||||
choice_set=choiceset,
|
|
||||||
default="Not a Selection option"
|
|
||||||
),
|
|
||||||
),
|
|
||||||
# Test Multiple Selection
|
|
||||||
(
|
|
||||||
# Should Pass
|
|
||||||
CustomField(
|
CustomField(
|
||||||
name='test',
|
name='test',
|
||||||
type='multiselect',
|
type='multiselect',
|
||||||
required=True,
|
required=True,
|
||||||
choice_set=choiceset,
|
choice_set=choiceset,
|
||||||
default=['choice1', ]
|
default=['choice1'] # Single default choice
|
||||||
),
|
).full_clean()
|
||||||
# Should Fail
|
|
||||||
CustomField(
|
CustomField(
|
||||||
name='test',
|
name='test',
|
||||||
type='multiselect',
|
type='multiselect',
|
||||||
required=True,
|
required=True,
|
||||||
choice_set=choiceset,
|
choice_set=choiceset,
|
||||||
default="Not a Selection option"
|
default=['choice1', 'choice2'] # Multiple default choices
|
||||||
),
|
).full_clean()
|
||||||
),
|
with self.assertRaises(ValidationError):
|
||||||
# Test Object
|
CustomField(
|
||||||
(
|
name='test',
|
||||||
# Should Pass
|
type='multiselect',
|
||||||
CustomField(name='test', type='object', required=True, object_type=object_type, default=1),
|
required=True,
|
||||||
# Should Fail
|
choice_set=choiceset,
|
||||||
CustomField(name='test', type='object', required=True, object_type=object_type, default="Site 1"),
|
default=['xxx']
|
||||||
),
|
).full_clean()
|
||||||
# Test Multiple Object
|
|
||||||
(
|
# Object
|
||||||
# Should Pass
|
CustomField(name='test', type='object', required=True, object_type=object_type, default=site.pk).full_clean()
|
||||||
|
with self.assertRaises(ValidationError):
|
||||||
|
CustomField(name='test', type='object', required=True, object_type=object_type, default="xxx").full_clean()
|
||||||
|
|
||||||
|
# Multi-object
|
||||||
CustomField(
|
CustomField(
|
||||||
name='test',
|
name='test',
|
||||||
type='multiobject',
|
type='multiobject',
|
||||||
required=True,
|
required=True,
|
||||||
object_type=object_type,
|
object_type=object_type,
|
||||||
default=[site.pk, ]
|
default=[site.pk]
|
||||||
),
|
).full_clean()
|
||||||
# Should Fail
|
|
||||||
CustomField(name='test', type='multiobject', required=True, object_type=object_type, default="Site 1"),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
|
|
||||||
for cftest in cfs:
|
|
||||||
# Check for valid default data
|
|
||||||
self.assertIsNone(cftest[0].full_clean())
|
|
||||||
|
|
||||||
# Check for invalid data
|
|
||||||
if len(cftest) > 1:
|
|
||||||
with self.assertRaises(ValidationError):
|
with self.assertRaises(ValidationError):
|
||||||
cftest[1].full_clean()
|
CustomField(
|
||||||
|
name='test',
|
||||||
|
type='multiobject',
|
||||||
|
required=True,
|
||||||
|
object_type=object_type,
|
||||||
|
default=["xxx"]
|
||||||
|
).full_clean()
|
||||||
|
|
||||||
|
|
||||||
class CustomFieldManagerTest(TestCase):
|
class CustomFieldManagerTest(TestCase):
|
||||||
|
Loading…
Reference in New Issue
Block a user