added test for OrderedDynamicField and OrderedDocument
This commit is contained in:
parent
84a8f1eb2b
commit
e32a9777d7
@ -7,6 +7,7 @@ import itertools
|
|||||||
import re
|
import re
|
||||||
|
|
||||||
from nose.plugins.skip import SkipTest
|
from nose.plugins.skip import SkipTest
|
||||||
|
from collections import OrderedDict
|
||||||
import six
|
import six
|
||||||
|
|
||||||
try:
|
try:
|
||||||
@ -4499,6 +4500,40 @@ class EmbeddedDocumentListFieldTestCase(MongoDBTestCase):
|
|||||||
self.assertTrue(hasattr(CustomData.c_field, 'custom_data'))
|
self.assertTrue(hasattr(CustomData.c_field, 'custom_data'))
|
||||||
self.assertEqual(custom_data['a'], CustomData.c_field.custom_data['a'])
|
self.assertEqual(custom_data['a'], CustomData.c_field.custom_data['a'])
|
||||||
|
|
||||||
|
def test_ordered_dynamic_fields_class(self):
|
||||||
|
"""
|
||||||
|
Tests that OrderedDynamicFields interits features of the DynamicFields
|
||||||
|
and saves/retrieves data in order.
|
||||||
|
"""
|
||||||
|
class Member(Document):
|
||||||
|
name = StringField()
|
||||||
|
age = IntField()
|
||||||
|
|
||||||
|
class Team(OrderedDocument):
|
||||||
|
members = OrderedDynamicField()
|
||||||
|
|
||||||
|
Member.drop_collection()
|
||||||
|
Team.drop_collection()
|
||||||
|
|
||||||
|
member_info = [
|
||||||
|
('Martin McFly', 17),
|
||||||
|
('Emmett Brown', 65),
|
||||||
|
('George McFly', 47)
|
||||||
|
]
|
||||||
|
members = OrderedDict()
|
||||||
|
for name, age in member_info:
|
||||||
|
members[name] = Member(name=name, age=age)
|
||||||
|
members[name].save()
|
||||||
|
|
||||||
|
Team(members=members).save()
|
||||||
|
|
||||||
|
index = 0
|
||||||
|
team = Team.objects.get()
|
||||||
|
for member in team.members:
|
||||||
|
print("%s == %s" % (member, member_info[index][0]))
|
||||||
|
self.assertEqual(member, member_info[index][0])
|
||||||
|
index += 1
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user