Fixed querying string versions of ObjectIds issue with ReferenceField (#307)
This commit is contained in:
@@ -1263,7 +1263,7 @@ class QuerySetTest(unittest.TestCase):
|
||||
class BlogPost(Document):
|
||||
content = StringField()
|
||||
authors = ListField(ReferenceField(self.Person,
|
||||
reverse_delete_rule=PULL))
|
||||
reverse_delete_rule=PULL))
|
||||
|
||||
BlogPost.drop_collection()
|
||||
self.Person.drop_collection()
|
||||
@@ -1321,6 +1321,49 @@ class QuerySetTest(unittest.TestCase):
|
||||
self.Person.objects()[:1].delete()
|
||||
self.assertEqual(1, BlogPost.objects.count())
|
||||
|
||||
|
||||
def test_reference_field_find(self):
|
||||
"""Ensure cascading deletion of referring documents from the database.
|
||||
"""
|
||||
class BlogPost(Document):
|
||||
content = StringField()
|
||||
author = ReferenceField(self.Person)
|
||||
|
||||
BlogPost.drop_collection()
|
||||
self.Person.drop_collection()
|
||||
|
||||
me = self.Person(name='Test User').save()
|
||||
BlogPost(content="test 123", author=me).save()
|
||||
|
||||
self.assertEqual(1, BlogPost.objects(author=me).count())
|
||||
self.assertEqual(1, BlogPost.objects(author=me.pk).count())
|
||||
self.assertEqual(1, BlogPost.objects(author="%s" % me.pk).count())
|
||||
|
||||
self.assertEqual(1, BlogPost.objects(author__in=[me]).count())
|
||||
self.assertEqual(1, BlogPost.objects(author__in=[me.pk]).count())
|
||||
self.assertEqual(1, BlogPost.objects(author__in=["%s" % me.pk]).count())
|
||||
|
||||
def test_reference_field_find_dbref(self):
|
||||
"""Ensure cascading deletion of referring documents from the database.
|
||||
"""
|
||||
class BlogPost(Document):
|
||||
content = StringField()
|
||||
author = ReferenceField(self.Person, dbref=True)
|
||||
|
||||
BlogPost.drop_collection()
|
||||
self.Person.drop_collection()
|
||||
|
||||
me = self.Person(name='Test User').save()
|
||||
BlogPost(content="test 123", author=me).save()
|
||||
|
||||
self.assertEqual(1, BlogPost.objects(author=me).count())
|
||||
self.assertEqual(1, BlogPost.objects(author=me.pk).count())
|
||||
self.assertEqual(1, BlogPost.objects(author="%s" % me.pk).count())
|
||||
|
||||
self.assertEqual(1, BlogPost.objects(author__in=[me]).count())
|
||||
self.assertEqual(1, BlogPost.objects(author__in=[me.pk]).count())
|
||||
self.assertEqual(1, BlogPost.objects(author__in=["%s" % me.pk]).count())
|
||||
|
||||
def test_update(self):
|
||||
"""Ensure that atomic updates work properly.
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user