Allow to add custom metadata to fields

This commit is contained in:
Vicky Donchenko
2015-06-01 17:57:40 +03:00
parent 33ea2b4844
commit 6bd9529a66
4 changed files with 23 additions and 2 deletions

View File

@@ -3818,5 +3818,22 @@ class EmbeddedDocumentListFieldTestCase(unittest.TestCase):
# deleted from the database
self.assertEqual(number, 1)
def test_custom_data(self):
"""
Tests that custom data is saved in the field object
and doesn't interfere with the rest of field functionalities.
"""
custom_data = {'a': 'a_value', 'b': [1, 2]}
class CustomData(Document):
a_field = IntField()
c_field = IntField(custom_data=custom_data)
a1 = CustomData(a_field=1, c_field=2).save()
self.assertEqual(2, a1.c_field)
self.assertFalse(hasattr(a1.c_field, 'custom_data'))
self.assertTrue(hasattr(CustomData.c_field, 'custom_data'))
self.assertEqual(custom_data['a'], CustomData.c_field.custom_data['a'])
if __name__ == '__main__':
unittest.main()