From 109202329f88144c42e9b5e2e5da3707c30ac22d Mon Sep 17 00:00:00 2001 From: Madiyar Aitbayev Date: Thu, 31 Mar 2016 02:33:13 +0100 Subject: [PATCH] Handles unicode correctly EmbeddedDocumentListField --- mongoengine/base/datastructures.py | 2 +- tests/fields/fields.py | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/mongoengine/base/datastructures.py b/mongoengine/base/datastructures.py index e4d2b3922..59dacdb71 100644 --- a/mongoengine/base/datastructures.py +++ b/mongoengine/base/datastructures.py @@ -210,7 +210,7 @@ class EmbeddedDocumentList(BaseList): def __match_all(cls, i, kwargs): items = kwargs.items() return all([ - getattr(i, k) == v or str(getattr(i, k)) == v for k, v in items + getattr(i, k) == v or unicode(getattr(i, k)) == v for k, v in items ]) @classmethod diff --git a/tests/fields/fields.py b/tests/fields/fields.py index 7575e8c68..6279774bb 100644 --- a/tests/fields/fields.py +++ b/tests/fields/fields.py @@ -4033,6 +4033,17 @@ def test_single_keyword_update(self): # modified self.assertEqual(number, 2) + def test_unicode(self): + """ + Tests that unicode strings handled correctly + """ + post = self.BlogPost(comments=[ + self.Comments(author='user1', message=u'сообщение'), + self.Comments(author='user2', message=u'хабарлама') + ]).save() + self.assertEqual(post.comments.get(message=u'сообщение').author, + 'user1') + def test_save(self): """ Tests the save method of a List of Embedded Documents.