flake8 tweaks to tests.queryset.queryset
This commit is contained in:
parent
43adba115b
commit
fd8cfbf610
@ -1,28 +1,23 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
import sys
|
import datetime
|
||||||
sys.path[0:0] = [""]
|
|
||||||
|
|
||||||
import unittest
|
import unittest
|
||||||
import uuid
|
import uuid
|
||||||
|
|
||||||
|
from bson import DBRef, ObjectId
|
||||||
from nose.plugins.skip import SkipTest
|
from nose.plugins.skip import SkipTest
|
||||||
|
|
||||||
from datetime import datetime, timedelta
|
|
||||||
|
|
||||||
import pymongo
|
import pymongo
|
||||||
from pymongo.errors import ConfigurationError
|
from pymongo.errors import ConfigurationError
|
||||||
from pymongo.read_preferences import ReadPreference
|
from pymongo.read_preferences import ReadPreference
|
||||||
|
|
||||||
from bson import ObjectId, DBRef
|
|
||||||
|
|
||||||
from mongoengine import *
|
from mongoengine import *
|
||||||
from mongoengine.connection import get_connection, get_db
|
from mongoengine.connection import get_connection, get_db
|
||||||
from mongoengine.python_support import PY3, IS_PYMONGO_3
|
|
||||||
from mongoengine.context_managers import query_counter, switch_db
|
from mongoengine.context_managers import query_counter, switch_db
|
||||||
from mongoengine.queryset import (QuerySet, QuerySetManager,
|
|
||||||
MultipleObjectsReturned, DoesNotExist,
|
|
||||||
queryset_manager)
|
|
||||||
from mongoengine.errors import InvalidQueryError
|
from mongoengine.errors import InvalidQueryError
|
||||||
|
from mongoengine.python_support import IS_PYMONGO_3, PY3
|
||||||
|
from mongoengine.queryset import (DoesNotExist, MultipleObjectsReturned,
|
||||||
|
QuerySet, QuerySetManager, queryset_manager)
|
||||||
|
|
||||||
__all__ = ("QuerySetTest",)
|
__all__ = ("QuerySetTest",)
|
||||||
|
|
||||||
@ -184,12 +179,14 @@ class QuerySetTest(unittest.TestCase):
|
|||||||
|
|
||||||
self.assertEqual(self.Person.objects.count(), 55)
|
self.assertEqual(self.Person.objects.count(), 55)
|
||||||
self.assertEqual("Person object", "%s" % self.Person.objects[0])
|
self.assertEqual("Person object", "%s" % self.Person.objects[0])
|
||||||
self.assertEqual(
|
self.assertEqual("[<Person: Person object>, <Person: Person object>]",
|
||||||
"[<Person: Person object>, <Person: Person object>]", "%s" % self.Person.objects[1:3])
|
"%s" % self.Person.objects[1:3])
|
||||||
self.assertEqual(
|
self.assertEqual("[<Person: Person object>, <Person: Person object>]",
|
||||||
"[<Person: Person object>, <Person: Person object>]", "%s" % self.Person.objects[51:53])
|
"%s" % self.Person.objects[51:53])
|
||||||
|
|
||||||
# Test only after limit
|
# Test only after limit
|
||||||
self.assertEqual(self.Person.objects().limit(2).only('name')[0].age, None)
|
self.assertEqual(self.Person.objects().limit(2).only('name')[0].age, None)
|
||||||
|
|
||||||
# Test only after skip
|
# Test only after skip
|
||||||
self.assertEqual(self.Person.objects().skip(2).only('name')[0].age, None)
|
self.assertEqual(self.Person.objects().skip(2).only('name')[0].age, None)
|
||||||
|
|
||||||
@ -287,6 +284,9 @@ class QuerySetTest(unittest.TestCase):
|
|||||||
blog = Blog.objects(posts__0__comments__0__name='testa').get()
|
blog = Blog.objects(posts__0__comments__0__name='testa').get()
|
||||||
self.assertEqual(blog, blog1)
|
self.assertEqual(blog, blog1)
|
||||||
|
|
||||||
|
blog = Blog.objects(posts__0__comments__0__name='testb').get()
|
||||||
|
self.assertEqual(blog, blog2)
|
||||||
|
|
||||||
query = Blog.objects(posts__1__comments__1__name='testb')
|
query = Blog.objects(posts__1__comments__1__name='testb')
|
||||||
self.assertEqual(query.count(), 2)
|
self.assertEqual(query.count(), 2)
|
||||||
|
|
||||||
@ -633,39 +633,39 @@ class QuerySetTest(unittest.TestCase):
|
|||||||
self.assertRaises(ValidationError, Doc.objects().update, dt_f="datetime", upsert=True)
|
self.assertRaises(ValidationError, Doc.objects().update, dt_f="datetime", upsert=True)
|
||||||
self.assertRaises(ValidationError, Doc.objects().update, ed_f__str_f=1, upsert=True)
|
self.assertRaises(ValidationError, Doc.objects().update, ed_f__str_f=1, upsert=True)
|
||||||
|
|
||||||
def test_update_related_models( self ):
|
def test_update_related_models(self):
|
||||||
class TestPerson( Document ):
|
class TestPerson(Document):
|
||||||
name = StringField()
|
name = StringField()
|
||||||
|
|
||||||
class TestOrganization( Document ):
|
class TestOrganization(Document):
|
||||||
name = StringField()
|
name = StringField()
|
||||||
owner = ReferenceField( TestPerson )
|
owner = ReferenceField(TestPerson)
|
||||||
|
|
||||||
TestPerson.drop_collection()
|
TestPerson.drop_collection()
|
||||||
TestOrganization.drop_collection()
|
TestOrganization.drop_collection()
|
||||||
|
|
||||||
p = TestPerson( name='p1' )
|
p = TestPerson(name='p1')
|
||||||
p.save()
|
p.save()
|
||||||
o = TestOrganization( name='o1' )
|
o = TestOrganization(name='o1')
|
||||||
o.save()
|
o.save()
|
||||||
|
|
||||||
o.owner = p
|
o.owner = p
|
||||||
p.name = 'p2'
|
p.name = 'p2'
|
||||||
|
|
||||||
self.assertEqual( o._get_changed_fields(), [ 'owner' ] )
|
self.assertEqual(o._get_changed_fields(), ['owner'])
|
||||||
self.assertEqual( p._get_changed_fields(), [ 'name' ] )
|
self.assertEqual(p._get_changed_fields(), ['name'])
|
||||||
|
|
||||||
o.save()
|
o.save()
|
||||||
|
|
||||||
self.assertEqual( o._get_changed_fields(), [] )
|
self.assertEqual(o._get_changed_fields(), [])
|
||||||
self.assertEqual( p._get_changed_fields(), [ 'name' ] ) # Fails; it's empty
|
self.assertEqual(p._get_changed_fields(), ['name']) # Fails; it's empty
|
||||||
|
|
||||||
# This will do NOTHING at all, even though we changed the name
|
# This will do NOTHING at all, even though we changed the name
|
||||||
p.save()
|
p.save()
|
||||||
|
|
||||||
p.reload()
|
p.reload()
|
||||||
|
|
||||||
self.assertEqual( p.name, 'p2' ) # Fails; it's still `p1`
|
self.assertEqual(p.name, 'p2') # Fails; it's still `p1`
|
||||||
|
|
||||||
def test_upsert(self):
|
def test_upsert(self):
|
||||||
self.Person.drop_collection()
|
self.Person.drop_collection()
|
||||||
@ -694,7 +694,6 @@ class QuerySetTest(unittest.TestCase):
|
|||||||
self.assertEqual(30, bobby.age)
|
self.assertEqual(30, bobby.age)
|
||||||
self.assertEqual(bob.id, bobby.id)
|
self.assertEqual(bob.id, bobby.id)
|
||||||
|
|
||||||
|
|
||||||
def test_set_on_insert(self):
|
def test_set_on_insert(self):
|
||||||
self.Person.drop_collection()
|
self.Person.drop_collection()
|
||||||
|
|
||||||
@ -1113,24 +1112,29 @@ class QuerySetTest(unittest.TestCase):
|
|||||||
blog_2.save()
|
blog_2.save()
|
||||||
blog_3.save()
|
blog_3.save()
|
||||||
|
|
||||||
blog_post_1 = BlogPost(blog=blog_1, title="Blog Post #1",
|
BlogPost.objects.create(
|
||||||
|
blog=blog_1,
|
||||||
|
title="Blog Post #1",
|
||||||
is_published=True,
|
is_published=True,
|
||||||
published_date=datetime(2010, 1, 5, 0, 0, 0))
|
published_date=datetime.datetime(2010, 1, 5, 0, 0, 0)
|
||||||
blog_post_2 = BlogPost(blog=blog_2, title="Blog Post #2",
|
)
|
||||||
|
BlogPost.objects.create(
|
||||||
|
blog=blog_2,
|
||||||
|
title="Blog Post #2",
|
||||||
is_published=True,
|
is_published=True,
|
||||||
published_date=datetime(2010, 1, 6, 0, 0, 0))
|
published_date=datetime.datetime(2010, 1, 6, 0, 0, 0)
|
||||||
blog_post_3 = BlogPost(blog=blog_3, title="Blog Post #3",
|
)
|
||||||
|
BlogPost.objects.create(
|
||||||
|
blog=blog_3,
|
||||||
|
title="Blog Post #3",
|
||||||
is_published=True,
|
is_published=True,
|
||||||
published_date=datetime(2010, 1, 7, 0, 0, 0))
|
published_date=datetime.datetime(2010, 1, 7, 0, 0, 0)
|
||||||
|
)
|
||||||
blog_post_1.save()
|
|
||||||
blog_post_2.save()
|
|
||||||
blog_post_3.save()
|
|
||||||
|
|
||||||
# find all published blog posts before 2010-01-07
|
# find all published blog posts before 2010-01-07
|
||||||
published_posts = BlogPost.published()
|
published_posts = BlogPost.published()
|
||||||
published_posts = published_posts.filter(
|
published_posts = published_posts.filter(
|
||||||
published_date__lt=datetime(2010, 1, 7, 0, 0, 0))
|
published_date__lt=datetime.datetime(2010, 1, 7, 0, 0, 0))
|
||||||
self.assertEqual(published_posts.count(), 2)
|
self.assertEqual(published_posts.count(), 2)
|
||||||
|
|
||||||
blog_posts = BlogPost.objects
|
blog_posts = BlogPost.objects
|
||||||
@ -1161,16 +1165,18 @@ class QuerySetTest(unittest.TestCase):
|
|||||||
|
|
||||||
BlogPost.drop_collection()
|
BlogPost.drop_collection()
|
||||||
|
|
||||||
blog_post_1 = BlogPost(title="Blog Post #1",
|
blog_post_1 = BlogPost.objects.create(
|
||||||
published_date=datetime(2010, 1, 5, 0, 0, 0))
|
title="Blog Post #1",
|
||||||
blog_post_2 = BlogPost(title="Blog Post #2",
|
published_date=datetime.datetime(2010, 1, 5, 0, 0, 0)
|
||||||
published_date=datetime(2010, 1, 6, 0, 0, 0))
|
)
|
||||||
blog_post_3 = BlogPost(title="Blog Post #3",
|
blog_post_2 = BlogPost.objects.create(
|
||||||
published_date=datetime(2010, 1, 7, 0, 0, 0))
|
title="Blog Post #2",
|
||||||
|
published_date=datetime.datetime(2010, 1, 6, 0, 0, 0)
|
||||||
blog_post_1.save()
|
)
|
||||||
blog_post_2.save()
|
blog_post_3 = BlogPost.objects.create(
|
||||||
blog_post_3.save()
|
title="Blog Post #3",
|
||||||
|
published_date=datetime.datetime(2010, 1, 7, 0, 0, 0)
|
||||||
|
)
|
||||||
|
|
||||||
# get the "first" BlogPost using default ordering
|
# get the "first" BlogPost using default ordering
|
||||||
# from BlogPost.meta.ordering
|
# from BlogPost.meta.ordering
|
||||||
@ -1219,7 +1225,7 @@ class QuerySetTest(unittest.TestCase):
|
|||||||
}
|
}
|
||||||
|
|
||||||
BlogPost.objects.create(
|
BlogPost.objects.create(
|
||||||
title='whatever', published_date=datetime.utcnow())
|
title='whatever', published_date=datetime.datetime.utcnow())
|
||||||
|
|
||||||
with db_ops_tracker() as q:
|
with db_ops_tracker() as q:
|
||||||
BlogPost.objects.get(title='whatever')
|
BlogPost.objects.get(title='whatever')
|
||||||
@ -2082,18 +2088,22 @@ class QuerySetTest(unittest.TestCase):
|
|||||||
|
|
||||||
BlogPost.drop_collection()
|
BlogPost.drop_collection()
|
||||||
|
|
||||||
blog_post_3 = BlogPost(title="Blog Post #3",
|
blog_post_3 = BlogPost.objects.create(
|
||||||
published_date=datetime(2010, 1, 6, 0, 0, 0))
|
title="Blog Post #3",
|
||||||
blog_post_2 = BlogPost(title="Blog Post #2",
|
published_date=datetime.datetime(2010, 1, 6, 0, 0, 0)
|
||||||
published_date=datetime(2010, 1, 5, 0, 0, 0))
|
)
|
||||||
blog_post_4 = BlogPost(title="Blog Post #4",
|
blog_post_2 = BlogPost.objects.create(
|
||||||
published_date=datetime(2010, 1, 7, 0, 0, 0))
|
title="Blog Post #2",
|
||||||
blog_post_1 = BlogPost(title="Blog Post #1", published_date=None)
|
published_date=datetime.datetime(2010, 1, 5, 0, 0, 0)
|
||||||
|
)
|
||||||
blog_post_3.save()
|
blog_post_4 = BlogPost.objects.create(
|
||||||
blog_post_1.save()
|
title="Blog Post #4",
|
||||||
blog_post_4.save()
|
published_date=datetime.datetime(2010, 1, 7, 0, 0, 0)
|
||||||
blog_post_2.save()
|
)
|
||||||
|
blog_post_1 = BlogPost.objects.create(
|
||||||
|
title="Blog Post #1",
|
||||||
|
published_date=None
|
||||||
|
)
|
||||||
|
|
||||||
expected = [blog_post_1, blog_post_2, blog_post_3, blog_post_4]
|
expected = [blog_post_1, blog_post_2, blog_post_3, blog_post_4]
|
||||||
self.assertSequence(BlogPost.objects.order_by('published_date'),
|
self.assertSequence(BlogPost.objects.order_by('published_date'),
|
||||||
@ -2112,16 +2122,18 @@ class QuerySetTest(unittest.TestCase):
|
|||||||
|
|
||||||
BlogPost.drop_collection()
|
BlogPost.drop_collection()
|
||||||
|
|
||||||
blog_post_1 = BlogPost(title="A",
|
blog_post_1 = BlogPost.objects.create(
|
||||||
published_date=datetime(2010, 1, 6, 0, 0, 0))
|
title="A",
|
||||||
blog_post_2 = BlogPost(title="B",
|
published_date=datetime.datetime(2010, 1, 6, 0, 0, 0)
|
||||||
published_date=datetime(2010, 1, 6, 0, 0, 0))
|
)
|
||||||
blog_post_3 = BlogPost(title="C",
|
blog_post_2 = BlogPost.objects.create(
|
||||||
published_date=datetime(2010, 1, 7, 0, 0, 0))
|
title="B",
|
||||||
|
published_date=datetime.datetime(2010, 1, 6, 0, 0, 0)
|
||||||
blog_post_2.save()
|
)
|
||||||
blog_post_3.save()
|
blog_post_3 = BlogPost.objects.create(
|
||||||
blog_post_1.save()
|
title="C",
|
||||||
|
published_date=datetime.datetime(2010, 1, 7, 0, 0, 0)
|
||||||
|
)
|
||||||
|
|
||||||
qs = BlogPost.objects.order_by('published_date', 'title')
|
qs = BlogPost.objects.order_by('published_date', 'title')
|
||||||
expected = [blog_post_1, blog_post_2, blog_post_3]
|
expected = [blog_post_1, blog_post_2, blog_post_3]
|
||||||
@ -2425,7 +2437,7 @@ class QuerySetTest(unittest.TestCase):
|
|||||||
|
|
||||||
Link.drop_collection()
|
Link.drop_collection()
|
||||||
|
|
||||||
now = datetime.utcnow()
|
now = datetime.datetime.utcnow()
|
||||||
|
|
||||||
# Note: Test data taken from a custom Reddit homepage on
|
# Note: Test data taken from a custom Reddit homepage on
|
||||||
# Fri, 12 Feb 2010 14:36:00 -0600. Link ordering should
|
# Fri, 12 Feb 2010 14:36:00 -0600. Link ordering should
|
||||||
@ -2434,27 +2446,27 @@ class QuerySetTest(unittest.TestCase):
|
|||||||
Link(title="Google Buzz auto-followed a woman's abusive ex ...",
|
Link(title="Google Buzz auto-followed a woman's abusive ex ...",
|
||||||
up_votes=1079,
|
up_votes=1079,
|
||||||
down_votes=553,
|
down_votes=553,
|
||||||
submitted=now - timedelta(hours=4)).save()
|
submitted=now - datetime.timedelta(hours=4)).save()
|
||||||
Link(title="We did it! Barbie is a computer engineer.",
|
Link(title="We did it! Barbie is a computer engineer.",
|
||||||
up_votes=481,
|
up_votes=481,
|
||||||
down_votes=124,
|
down_votes=124,
|
||||||
submitted=now - timedelta(hours=2)).save()
|
submitted=now - datetime.timedelta(hours=2)).save()
|
||||||
Link(title="This Is A Mosquito Getting Killed By A Laser",
|
Link(title="This Is A Mosquito Getting Killed By A Laser",
|
||||||
up_votes=1446,
|
up_votes=1446,
|
||||||
down_votes=530,
|
down_votes=530,
|
||||||
submitted=now - timedelta(hours=13)).save()
|
submitted=now - datetime.timedelta(hours=13)).save()
|
||||||
Link(title="Arabic flashcards land physics student in jail.",
|
Link(title="Arabic flashcards land physics student in jail.",
|
||||||
up_votes=215,
|
up_votes=215,
|
||||||
down_votes=105,
|
down_votes=105,
|
||||||
submitted=now - timedelta(hours=6)).save()
|
submitted=now - datetime.timedelta(hours=6)).save()
|
||||||
Link(title="The Burger Lab: Presenting, the Flood Burger",
|
Link(title="The Burger Lab: Presenting, the Flood Burger",
|
||||||
up_votes=48,
|
up_votes=48,
|
||||||
down_votes=17,
|
down_votes=17,
|
||||||
submitted=now - timedelta(hours=5)).save()
|
submitted=now - datetime.timedelta(hours=5)).save()
|
||||||
Link(title="How to see polarization with the naked eye",
|
Link(title="How to see polarization with the naked eye",
|
||||||
up_votes=74,
|
up_votes=74,
|
||||||
down_votes=13,
|
down_votes=13,
|
||||||
submitted=now - timedelta(hours=10)).save()
|
submitted=now - datetime.timedelta(hours=10)).save()
|
||||||
|
|
||||||
map_f = """
|
map_f = """
|
||||||
function() {
|
function() {
|
||||||
@ -2504,7 +2516,7 @@ class QuerySetTest(unittest.TestCase):
|
|||||||
|
|
||||||
# provide the reddit epoch (used for ranking) as a variable available
|
# provide the reddit epoch (used for ranking) as a variable available
|
||||||
# to all phases of the map/reduce operation: map, reduce, and finalize.
|
# to all phases of the map/reduce operation: map, reduce, and finalize.
|
||||||
reddit_epoch = mktime(datetime(2005, 12, 8, 7, 46, 43).timetuple())
|
reddit_epoch = mktime(datetime.datetime(2005, 12, 8, 7, 46, 43).timetuple())
|
||||||
scope = {'reddit_epoch': reddit_epoch}
|
scope = {'reddit_epoch': reddit_epoch}
|
||||||
|
|
||||||
# run a map/reduce operation across all links. ordering is set
|
# run a map/reduce operation across all links. ordering is set
|
||||||
@ -3096,13 +3108,11 @@ class QuerySetTest(unittest.TestCase):
|
|||||||
mark_twain = Author(name="Mark Twain")
|
mark_twain = Author(name="Mark Twain")
|
||||||
john_tolkien = Author(name="John Ronald Reuel Tolkien")
|
john_tolkien = Author(name="John Ronald Reuel Tolkien")
|
||||||
|
|
||||||
book = Book(title="Tom Sawyer", authors=[mark_twain]).save()
|
Book.objects.create(title="Tom Sawyer", authors=[mark_twain])
|
||||||
book = Book(
|
Book.objects.create(title="The Lord of the Rings", authors=[john_tolkien])
|
||||||
title="The Lord of the Rings", authors=[john_tolkien]).save()
|
Book.objects.create(title="The Stories", authors=[mark_twain, john_tolkien])
|
||||||
book = Book(
|
|
||||||
title="The Stories", authors=[mark_twain, john_tolkien]).save()
|
|
||||||
authors = Book.objects.distinct("authors")
|
|
||||||
|
|
||||||
|
authors = Book.objects.distinct("authors")
|
||||||
self.assertEqual(authors, [mark_twain, john_tolkien])
|
self.assertEqual(authors, [mark_twain, john_tolkien])
|
||||||
|
|
||||||
def test_distinct_ListField_EmbeddedDocumentField_EmbeddedDocumentField(self):
|
def test_distinct_ListField_EmbeddedDocumentField_EmbeddedDocumentField(self):
|
||||||
@ -3132,17 +3142,14 @@ class QuerySetTest(unittest.TestCase):
|
|||||||
mark_twain = Author(name="Mark Twain", country=scotland)
|
mark_twain = Author(name="Mark Twain", country=scotland)
|
||||||
john_tolkien = Author(name="John Ronald Reuel Tolkien", country=tibet)
|
john_tolkien = Author(name="John Ronald Reuel Tolkien", country=tibet)
|
||||||
|
|
||||||
book = Book(title="Tom Sawyer", authors=[mark_twain]).save()
|
Book.objects.create(title="Tom Sawyer", authors=[mark_twain])
|
||||||
book = Book(
|
Book.objects.create(title="The Lord of the Rings", authors=[john_tolkien])
|
||||||
title="The Lord of the Rings", authors=[john_tolkien]).save()
|
Book.objects.create(title="The Stories", authors=[mark_twain, john_tolkien])
|
||||||
book = Book(
|
|
||||||
title="The Stories", authors=[mark_twain, john_tolkien]).save()
|
|
||||||
country_list = Book.objects.distinct("authors.country")
|
|
||||||
|
|
||||||
|
country_list = Book.objects.distinct("authors.country")
|
||||||
self.assertEqual(country_list, [scotland, tibet])
|
self.assertEqual(country_list, [scotland, tibet])
|
||||||
|
|
||||||
continent_list = Book.objects.distinct("authors.country.continent")
|
continent_list = Book.objects.distinct("authors.country.continent")
|
||||||
|
|
||||||
self.assertEqual(continent_list, [europe, asia])
|
self.assertEqual(continent_list, [europe, asia])
|
||||||
|
|
||||||
def test_distinct_ListField_ReferenceField(self):
|
def test_distinct_ListField_ReferenceField(self):
|
||||||
@ -3174,7 +3181,7 @@ class QuerySetTest(unittest.TestCase):
|
|||||||
class BlogPost(Document):
|
class BlogPost(Document):
|
||||||
tags = ListField(StringField())
|
tags = ListField(StringField())
|
||||||
deleted = BooleanField(default=False)
|
deleted = BooleanField(default=False)
|
||||||
date = DateTimeField(default=datetime.now)
|
date = DateTimeField(default=datetime.datetime.now)
|
||||||
|
|
||||||
@queryset_manager
|
@queryset_manager
|
||||||
def objects(cls, qryset):
|
def objects(cls, qryset):
|
||||||
@ -3997,8 +4004,8 @@ class QuerySetTest(unittest.TestCase):
|
|||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
"A0", "%s" % self.Person.objects.scalar('name').order_by('name')[0])
|
"A0", "%s" % self.Person.objects.scalar('name').order_by('name')[0])
|
||||||
if PY3:
|
if PY3:
|
||||||
self.assertEqual(
|
self.assertEqual("['A1', 'A2']", "%s" % self.Person.objects.order_by(
|
||||||
"['A1', 'A2']", "%s" % self.Person.objects.order_by('age').scalar('name')[1:3])
|
'age').scalar('name')[1:3])
|
||||||
self.assertEqual("['A51', 'A52']", "%s" % self.Person.objects.order_by(
|
self.assertEqual("['A51', 'A52']", "%s" % self.Person.objects.order_by(
|
||||||
'age').scalar('name')[51:53])
|
'age').scalar('name')[51:53])
|
||||||
else:
|
else:
|
||||||
@ -4013,12 +4020,12 @@ class QuerySetTest(unittest.TestCase):
|
|||||||
self.Person.objects.scalar('name').with_id(person.id))
|
self.Person.objects.scalar('name').with_id(person.id))
|
||||||
|
|
||||||
pks = self.Person.objects.order_by('age').scalar('pk')[1:3]
|
pks = self.Person.objects.order_by('age').scalar('pk')[1:3]
|
||||||
|
names = self.Person.objects.scalar('name').in_bulk(list(pks)).values()
|
||||||
if PY3:
|
if PY3:
|
||||||
self.assertEqual("['A1', 'A2']", "%s" % sorted(
|
expected = "['A1', 'A2']"
|
||||||
self.Person.objects.scalar('name').in_bulk(list(pks)).values()))
|
|
||||||
else:
|
else:
|
||||||
self.assertEqual("[u'A1', u'A2']", "%s" % sorted(
|
expected = "[u'A1', u'A2']"
|
||||||
self.Person.objects.scalar('name').in_bulk(list(pks)).values()))
|
self.assertEqual(expected, "%s" % sorted(names))
|
||||||
|
|
||||||
def test_elem_match(self):
|
def test_elem_match(self):
|
||||||
class Foo(EmbeddedDocument):
|
class Foo(EmbeddedDocument):
|
||||||
@ -4115,7 +4122,7 @@ class QuerySetTest(unittest.TestCase):
|
|||||||
txt = StringField()
|
txt = StringField()
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
'indexes': [ 'txt' ]
|
'indexes': ['txt']
|
||||||
}
|
}
|
||||||
|
|
||||||
Bar.drop_collection()
|
Bar.drop_collection()
|
||||||
@ -4130,47 +4137,47 @@ class QuerySetTest(unittest.TestCase):
|
|||||||
|
|
||||||
# read_preference as a kwarg
|
# read_preference as a kwarg
|
||||||
bars = Bar.objects(read_preference=ReadPreference.SECONDARY_PREFERRED)
|
bars = Bar.objects(read_preference=ReadPreference.SECONDARY_PREFERRED)
|
||||||
self.assertEqual(
|
self.assertEqual(bars._read_preference,
|
||||||
bars._read_preference, ReadPreference.SECONDARY_PREFERRED)
|
ReadPreference.SECONDARY_PREFERRED)
|
||||||
self.assertEqual(bars._cursor._Cursor__read_preference,
|
self.assertEqual(bars._cursor._Cursor__read_preference,
|
||||||
ReadPreference.SECONDARY_PREFERRED)
|
ReadPreference.SECONDARY_PREFERRED)
|
||||||
|
|
||||||
# read_preference as a query set method
|
# read_preference as a query set method
|
||||||
bars = Bar.objects.read_preference(ReadPreference.SECONDARY_PREFERRED)
|
bars = Bar.objects.read_preference(ReadPreference.SECONDARY_PREFERRED)
|
||||||
self.assertEqual(
|
self.assertEqual(bars._read_preference,
|
||||||
bars._read_preference, ReadPreference.SECONDARY_PREFERRED)
|
ReadPreference.SECONDARY_PREFERRED)
|
||||||
self.assertEqual(bars._cursor._Cursor__read_preference,
|
self.assertEqual(bars._cursor._Cursor__read_preference,
|
||||||
ReadPreference.SECONDARY_PREFERRED)
|
ReadPreference.SECONDARY_PREFERRED)
|
||||||
|
|
||||||
# read_preference after skip
|
# read_preference after skip
|
||||||
bars = Bar.objects.skip(1) \
|
bars = Bar.objects.skip(1) \
|
||||||
.read_preference(ReadPreference.SECONDARY_PREFERRED)
|
.read_preference(ReadPreference.SECONDARY_PREFERRED)
|
||||||
self.assertEqual(
|
self.assertEqual(bars._read_preference,
|
||||||
bars._read_preference, ReadPreference.SECONDARY_PREFERRED)
|
ReadPreference.SECONDARY_PREFERRED)
|
||||||
self.assertEqual(bars._cursor._Cursor__read_preference,
|
self.assertEqual(bars._cursor._Cursor__read_preference,
|
||||||
ReadPreference.SECONDARY_PREFERRED)
|
ReadPreference.SECONDARY_PREFERRED)
|
||||||
|
|
||||||
# read_preference after limit
|
# read_preference after limit
|
||||||
bars = Bar.objects.limit(1) \
|
bars = Bar.objects.limit(1) \
|
||||||
.read_preference(ReadPreference.SECONDARY_PREFERRED)
|
.read_preference(ReadPreference.SECONDARY_PREFERRED)
|
||||||
self.assertEqual(
|
self.assertEqual(bars._read_preference,
|
||||||
bars._read_preference, ReadPreference.SECONDARY_PREFERRED)
|
ReadPreference.SECONDARY_PREFERRED)
|
||||||
self.assertEqual(bars._cursor._Cursor__read_preference,
|
self.assertEqual(bars._cursor._Cursor__read_preference,
|
||||||
ReadPreference.SECONDARY_PREFERRED)
|
ReadPreference.SECONDARY_PREFERRED)
|
||||||
|
|
||||||
# read_preference after order_by
|
# read_preference after order_by
|
||||||
bars = Bar.objects.order_by('txt') \
|
bars = Bar.objects.order_by('txt') \
|
||||||
.read_preference(ReadPreference.SECONDARY_PREFERRED)
|
.read_preference(ReadPreference.SECONDARY_PREFERRED)
|
||||||
self.assertEqual(
|
self.assertEqual(bars._read_preference,
|
||||||
bars._read_preference, ReadPreference.SECONDARY_PREFERRED)
|
ReadPreference.SECONDARY_PREFERRED)
|
||||||
self.assertEqual(bars._cursor._Cursor__read_preference,
|
self.assertEqual(bars._cursor._Cursor__read_preference,
|
||||||
ReadPreference.SECONDARY_PREFERRED)
|
ReadPreference.SECONDARY_PREFERRED)
|
||||||
|
|
||||||
# read_preference after hint
|
# read_preference after hint
|
||||||
bars = Bar.objects.hint([('txt', 1)]) \
|
bars = Bar.objects.hint([('txt', 1)]) \
|
||||||
.read_preference(ReadPreference.SECONDARY_PREFERRED)
|
.read_preference(ReadPreference.SECONDARY_PREFERRED)
|
||||||
self.assertEqual(
|
self.assertEqual(bars._read_preference,
|
||||||
bars._read_preference, ReadPreference.SECONDARY_PREFERRED)
|
ReadPreference.SECONDARY_PREFERRED)
|
||||||
self.assertEqual(bars._cursor._Cursor__read_preference,
|
self.assertEqual(bars._cursor._Cursor__read_preference,
|
||||||
ReadPreference.SECONDARY_PREFERRED)
|
ReadPreference.SECONDARY_PREFERRED)
|
||||||
|
|
||||||
@ -4208,7 +4215,7 @@ class QuerySetTest(unittest.TestCase):
|
|||||||
int_field = IntField(default=1)
|
int_field = IntField(default=1)
|
||||||
float_field = FloatField(default=1.1)
|
float_field = FloatField(default=1.1)
|
||||||
boolean_field = BooleanField(default=True)
|
boolean_field = BooleanField(default=True)
|
||||||
datetime_field = DateTimeField(default=datetime.now)
|
datetime_field = DateTimeField(default=datetime.datetime.now)
|
||||||
embedded_document_field = EmbeddedDocumentField(
|
embedded_document_field = EmbeddedDocumentField(
|
||||||
EmbeddedDoc, default=lambda: EmbeddedDoc())
|
EmbeddedDoc, default=lambda: EmbeddedDoc())
|
||||||
list_field = ListField(default=lambda: [1, 2, 3])
|
list_field = ListField(default=lambda: [1, 2, 3])
|
||||||
@ -4218,7 +4225,7 @@ class QuerySetTest(unittest.TestCase):
|
|||||||
Simple, default=lambda: Simple().save())
|
Simple, default=lambda: Simple().save())
|
||||||
map_field = MapField(IntField(), default=lambda: {"simple": 1})
|
map_field = MapField(IntField(), default=lambda: {"simple": 1})
|
||||||
decimal_field = DecimalField(default=1.0)
|
decimal_field = DecimalField(default=1.0)
|
||||||
complex_datetime_field = ComplexDateTimeField(default=datetime.now)
|
complex_datetime_field = ComplexDateTimeField(default=datetime.datetime.now)
|
||||||
url_field = URLField(default="http://mongoengine.org")
|
url_field = URLField(default="http://mongoengine.org")
|
||||||
dynamic_field = DynamicField(default=1)
|
dynamic_field = DynamicField(default=1)
|
||||||
generic_reference_field = GenericReferenceField(
|
generic_reference_field = GenericReferenceField(
|
||||||
@ -4565,8 +4572,7 @@ class QuerySetTest(unittest.TestCase):
|
|||||||
B.drop_collection()
|
B.drop_collection()
|
||||||
|
|
||||||
a = A.objects.create(id='custom_id')
|
a = A.objects.create(id='custom_id')
|
||||||
|
B.objects.create(a=a)
|
||||||
b = B.objects.create(a=a)
|
|
||||||
|
|
||||||
self.assertEqual(B.objects.count(), 1)
|
self.assertEqual(B.objects.count(), 1)
|
||||||
self.assertEqual(B.objects.get(a=a).a, a)
|
self.assertEqual(B.objects.get(a=a).a, a)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user