Merge pull request #2055 from bagerard/improve_test_cov
Improve test cov
This commit is contained in:
@@ -158,6 +158,11 @@ class QuerySetTest(unittest.TestCase):
|
||||
self.assertEqual(person.name, 'User B')
|
||||
self.assertEqual(person.age, None)
|
||||
|
||||
def test___getitem___invalid_index(self):
|
||||
"""Ensure slicing a queryset works as expected."""
|
||||
with self.assertRaises(TypeError):
|
||||
self.Person.objects()['a']
|
||||
|
||||
def test_slice(self):
|
||||
"""Ensure slicing a queryset works as expected."""
|
||||
user_a = self.Person.objects.create(name='User A', age=20)
|
||||
@@ -986,6 +991,29 @@ class QuerySetTest(unittest.TestCase):
|
||||
inserted_comment_id = Comment.objects.insert(comment, load_bulk=False)
|
||||
self.assertEqual(comment.id, inserted_comment_id)
|
||||
|
||||
def test_bulk_insert_accepts_doc_with_ids(self):
|
||||
class Comment(Document):
|
||||
id = IntField(primary_key=True)
|
||||
|
||||
Comment.drop_collection()
|
||||
|
||||
com1 = Comment(id=0)
|
||||
com2 = Comment(id=1)
|
||||
Comment.objects.insert([com1, com2])
|
||||
|
||||
def test_insert_raise_if_duplicate_in_constraint(self):
|
||||
class Comment(Document):
|
||||
id = IntField(primary_key=True)
|
||||
|
||||
Comment.drop_collection()
|
||||
|
||||
com1 = Comment(id=0)
|
||||
|
||||
Comment.objects.insert(com1)
|
||||
|
||||
with self.assertRaises(NotUniqueError):
|
||||
Comment.objects.insert(com1)
|
||||
|
||||
def test_get_changed_fields_query_count(self):
|
||||
"""Make sure we don't perform unnecessary db operations when
|
||||
none of document's fields were updated.
|
||||
@@ -3604,6 +3632,11 @@ class QuerySetTest(unittest.TestCase):
|
||||
opts = {"deleted": False}
|
||||
return qryset(**opts)
|
||||
|
||||
@queryset_manager
|
||||
def objects_1_arg(qryset):
|
||||
opts = {"deleted": False}
|
||||
return qryset(**opts)
|
||||
|
||||
@queryset_manager
|
||||
def music_posts(doc_cls, queryset, deleted=False):
|
||||
return queryset(tags='music',
|
||||
@@ -3618,6 +3651,8 @@ class QuerySetTest(unittest.TestCase):
|
||||
|
||||
self.assertEqual([p.id for p in BlogPost.objects()],
|
||||
[post1.id, post2.id, post3.id])
|
||||
self.assertEqual([p.id for p in BlogPost.objects_1_arg()],
|
||||
[post1.id, post2.id, post3.id])
|
||||
self.assertEqual([p.id for p in BlogPost.music_posts()],
|
||||
[post1.id, post2.id])
|
||||
|
||||
@@ -5002,6 +5037,38 @@ class QuerySetTest(unittest.TestCase):
|
||||
people.count()
|
||||
self.assertEqual(q, 3)
|
||||
|
||||
def test_no_cached_queryset__repr__(self):
|
||||
class Person(Document):
|
||||
name = StringField()
|
||||
|
||||
Person.drop_collection()
|
||||
qs = Person.objects.no_cache()
|
||||
self.assertEqual(repr(qs), '[]')
|
||||
|
||||
def test_no_cached_on_a_cached_queryset_raise_error(self):
|
||||
class Person(Document):
|
||||
name = StringField()
|
||||
|
||||
Person.drop_collection()
|
||||
Person(name='a').save()
|
||||
qs = Person.objects()
|
||||
_ = list(qs)
|
||||
with self.assertRaises(OperationError) as ctx_err:
|
||||
qs.no_cache()
|
||||
self.assertEqual("QuerySet already cached", str(ctx_err.exception))
|
||||
|
||||
def test_no_cached_queryset_no_cache_back_to_cache(self):
|
||||
class Person(Document):
|
||||
name = StringField()
|
||||
|
||||
Person.drop_collection()
|
||||
qs = Person.objects()
|
||||
self.assertIsInstance(qs, QuerySet)
|
||||
qs = qs.no_cache()
|
||||
self.assertIsInstance(qs, QuerySetNoCache)
|
||||
qs = qs.cache()
|
||||
self.assertIsInstance(qs, QuerySet)
|
||||
|
||||
def test_cache_not_cloned(self):
|
||||
|
||||
class User(Document):
|
||||
|
||||
@@ -71,6 +71,14 @@ class TransformTest(unittest.TestCase):
|
||||
update = transform.update(BlogPost, push_all__tags=['mongo', 'db'])
|
||||
self.assertEqual(update, {'$push': {'tags': {'$each': ['mongo', 'db']}}})
|
||||
|
||||
def test_transform_update_no_operator_default_to_set(self):
|
||||
"""Ensure the differences in behvaior between 'push' and 'push_all'"""
|
||||
class BlogPost(Document):
|
||||
tags = ListField(StringField())
|
||||
|
||||
update = transform.update(BlogPost, tags=['mongo', 'db'])
|
||||
self.assertEqual(update, {'$set': {'tags': ['mongo', 'db']}})
|
||||
|
||||
def test_query_field_name(self):
|
||||
"""Ensure that the correct field name is used when querying.
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user