2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-07-01 11:10:54 +00:00

Metadata fix (#4725)

* Add 'clean' method to MetadataMixin class

- Ensure that the "metadata" is a valid dict object

* Add "overwrite" option for set_metadata method

* Update unit tests

* full_clean -> clean

* Cleanup

* Fix for MetadataMixin

* Updates for unit tests

* Test
This commit is contained in:
Oliver
2023-05-05 14:06:19 +10:00
committed by GitHub
parent c45e66935a
commit 9920c3fd9c
11 changed files with 36 additions and 15 deletions

View File

@ -303,8 +303,6 @@ class SalesOrderTest(TestCase):
for model in [SalesOrder, SalesOrderLineItem, SalesOrderExtraLine, SalesOrderShipment]:
p = model.objects.first()
self.assertIsNone(p.metadata)
self.assertIsNone(p.get_metadata('test'))
self.assertEqual(p.get_metadata('test', backup_value=123), 123)

View File

@ -390,7 +390,14 @@ class OrderTest(TestCase):
"""Unit tests for the metadata field."""
for model in [PurchaseOrder, PurchaseOrderLineItem, PurchaseOrderExtraLine]:
p = model.objects.first()
self.assertIsNone(p.metadata)
# Setting metadata to something *other* than a dict will fail
with self.assertRaises(django_exceptions.ValidationError):
p.metadata = 'test'
p.save()
# Reset metadata to known state
p.metadata = {}
self.assertIsNone(p.get_metadata('test'))
self.assertEqual(p.get_metadata('test', backup_value=123), 123)