mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
Drop CustomFieldValue
This commit is contained in:
@@ -7,7 +7,7 @@ from rest_framework import status
|
||||
from dcim.forms import SiteCSVForm
|
||||
from dcim.models import Site
|
||||
from extras.choices import *
|
||||
from extras.models import CustomField, CustomFieldValue, CustomFieldChoice
|
||||
from extras.models import CustomField, CustomFieldChoice
|
||||
from utilities.testing import APITestCase, TestCase
|
||||
from virtualization.models import VirtualMachine
|
||||
|
||||
@@ -46,18 +46,18 @@ class CustomFieldTest(TestCase):
|
||||
|
||||
# Assign a value to the first Site
|
||||
site = Site.objects.first()
|
||||
cfv = CustomFieldValue(field=cf, obj_type=obj_type, obj_id=site.id)
|
||||
cfv.value = data['field_value']
|
||||
cfv.save()
|
||||
site.custom_field_data[cf.name] = data['field_value']
|
||||
site.save()
|
||||
|
||||
# Retrieve the stored value
|
||||
cfv = CustomFieldValue.objects.filter(obj_type=obj_type, obj_id=site.pk).first()
|
||||
self.assertEqual(cfv.value, data['field_value'])
|
||||
site.refresh_from_db()
|
||||
self.assertEqual(site.custom_field_data[cf.name], data['field_value'])
|
||||
|
||||
# Delete the stored value
|
||||
cfv.value = data['empty_value']
|
||||
cfv.save()
|
||||
self.assertEqual(CustomFieldValue.objects.filter(obj_type=obj_type, obj_id=site.pk).count(), 0)
|
||||
site.custom_field_data.pop(cf.name)
|
||||
site.save()
|
||||
site.refresh_from_db()
|
||||
self.assertIsNone(site.custom_field_data.get(cf.name))
|
||||
|
||||
# Delete the custom field
|
||||
cf.delete()
|
||||
@@ -81,18 +81,18 @@ class CustomFieldTest(TestCase):
|
||||
|
||||
# Assign a value to the first Site
|
||||
site = Site.objects.first()
|
||||
cfv = CustomFieldValue(field=cf, obj_type=obj_type, obj_id=site.id)
|
||||
cfv.value = cf.choices.first()
|
||||
cfv.save()
|
||||
site.custom_field_data[cf.name] = cf.choices.first().pk
|
||||
site.save()
|
||||
|
||||
# Retrieve the stored value
|
||||
cfv = CustomFieldValue.objects.filter(obj_type=obj_type, obj_id=site.pk).first()
|
||||
self.assertEqual(str(cfv.value), 'Option A')
|
||||
site.refresh_from_db()
|
||||
self.assertEqual(site.custom_field_data[cf.name], 'Option A')
|
||||
|
||||
# Delete the stored value
|
||||
cfv.value = None
|
||||
cfv.save()
|
||||
self.assertEqual(CustomFieldValue.objects.filter(obj_type=obj_type, obj_id=site.pk).count(), 0)
|
||||
site.custom_field_data.pop(cf.name)
|
||||
site.save()
|
||||
site.refresh_from_db()
|
||||
self.assertIsNone(site.custom_field_data.get(cf.name))
|
||||
|
||||
# Delete the custom field
|
||||
cf.delete()
|
||||
@@ -164,18 +164,15 @@ class CustomFieldAPITest(APITestCase):
|
||||
Site.objects.bulk_create(cls.sites)
|
||||
|
||||
# Assign custom field values for site 2
|
||||
site2_cfvs = {
|
||||
cls.cf_text: 'bar',
|
||||
cls.cf_integer: 456,
|
||||
cls.cf_boolean: True,
|
||||
cls.cf_date: '2020-01-02',
|
||||
cls.cf_url: 'http://example.com/2',
|
||||
cls.cf_select: cls.cf_select_choice2.pk,
|
||||
cls.sites[1].custom_field_data = {
|
||||
cls.cf_text.name: 'bar',
|
||||
cls.cf_integer.name: 456,
|
||||
cls.cf_boolean.name: True,
|
||||
cls.cf_date.name: '2020-01-02',
|
||||
cls.cf_url.name: 'http://example.com/2',
|
||||
cls.cf_select.name: cls.cf_select_choice2.pk,
|
||||
}
|
||||
for field, value in site2_cfvs.items():
|
||||
cfv = CustomFieldValue(field=field, obj=cls.sites[1])
|
||||
cfv.value = value
|
||||
cfv.save()
|
||||
cls.sites[1].save()
|
||||
|
||||
def test_get_single_object_without_custom_field_values(self):
|
||||
"""
|
||||
@@ -518,7 +515,7 @@ class CustomFieldImportTest(TestCase):
|
||||
|
||||
# Validate data for site 1
|
||||
custom_field_values = {
|
||||
cf.name: value for cf, value in Site.objects.get(name='Site 1').get_custom_fields().items()
|
||||
cf.name: value for cf, value in Site.objects.get(name='Site 1').custom_field_data
|
||||
}
|
||||
self.assertEqual(len(custom_field_values), 6)
|
||||
self.assertEqual(custom_field_values['text'], 'ABC')
|
||||
@@ -530,7 +527,7 @@ class CustomFieldImportTest(TestCase):
|
||||
|
||||
# Validate data for site 2
|
||||
custom_field_values = {
|
||||
cf.name: value for cf, value in Site.objects.get(name='Site 2').get_custom_fields().items()
|
||||
cf.name: value for cf, value in Site.objects.get(name='Site 2').custom_field_data
|
||||
}
|
||||
self.assertEqual(len(custom_field_values), 6)
|
||||
self.assertEqual(custom_field_values['text'], 'DEF')
|
||||
@@ -543,8 +540,7 @@ class CustomFieldImportTest(TestCase):
|
||||
# No CustomFieldValues should be created for site 3
|
||||
obj_type = ContentType.objects.get_for_model(Site)
|
||||
site3 = Site.objects.get(name='Site 3')
|
||||
self.assertFalse(CustomFieldValue.objects.filter(obj_type=obj_type, obj_id=site3.pk).exists())
|
||||
self.assertEqual(CustomFieldValue.objects.count(), 12) # Sanity check
|
||||
self.assertEqual(site3.custom_field_data, {})
|
||||
|
||||
def test_import_missing_required(self):
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user