mirror of
https://github.com/inventree/InvenTree.git
synced 2026-03-24 13:20:55 +00:00
Ensure that parameters are removed when deleting the linked object
This commit is contained in:
@@ -270,3 +270,43 @@ class ParameterAPITests(InvenTreeAPITestCase):
|
|||||||
len(templates),
|
len(templates),
|
||||||
'Incorrect number of parameter annotations found',
|
'Incorrect number of parameter annotations found',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def test_parameter_delete(self):
|
||||||
|
"""Test that associated parameters are correctly deleted when removing the linked model."""
|
||||||
|
from part.models import Part
|
||||||
|
|
||||||
|
part = Part.objects.create(
|
||||||
|
name='Test Part', description='A part for testing', active=False
|
||||||
|
)
|
||||||
|
|
||||||
|
# Create a ParameterTemplate for the Part model
|
||||||
|
template = common.models.ParameterTemplate.objects.create(
|
||||||
|
name='Test Parameter',
|
||||||
|
description='A parameter template for testing parameter deletion',
|
||||||
|
model_type=None,
|
||||||
|
)
|
||||||
|
|
||||||
|
# Create a Parameter for the Build
|
||||||
|
parameter = common.models.Parameter.objects.create(
|
||||||
|
template=template,
|
||||||
|
model_type=part.get_content_type(),
|
||||||
|
model_id=part.pk,
|
||||||
|
data='Test data',
|
||||||
|
)
|
||||||
|
|
||||||
|
self.assertTrue(
|
||||||
|
common.models.Parameter.objects.filter(pk=parameter.pk).exists()
|
||||||
|
)
|
||||||
|
|
||||||
|
N = common.models.Parameter.objects.count()
|
||||||
|
|
||||||
|
# Now delete the part instance
|
||||||
|
self.assignRole('part.delete')
|
||||||
|
self.delete(
|
||||||
|
reverse('api-part-detail', kwargs={'pk': part.pk}), expected_code=204
|
||||||
|
)
|
||||||
|
|
||||||
|
self.assertEqual(common.models.Parameter.objects.count(), N - 1)
|
||||||
|
self.assertFalse(
|
||||||
|
common.models.Parameter.objects.filter(template=template.pk).exists()
|
||||||
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user