added test for OrderedDynamicField and OrderedDocument

This commit is contained in:
Hiroyasu OHYAMA 2017-02-28 03:35:53 +00:00
parent 84a8f1eb2b
commit e32a9777d7

View File

@ -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()