get_mongodb_version tests helper + fix indexing tests in mongodb v2.4
This commit is contained in:
parent
d39f5197cb
commit
71ccfeac3c
@ -9,7 +9,8 @@ from nose.plugins.skip import SkipTest
|
||||
from datetime import datetime
|
||||
|
||||
from mongoengine import *
|
||||
from mongoengine.connection import get_db, get_connection
|
||||
from mongoengine.connection import get_db
|
||||
from tests.utils import get_mongodb_version
|
||||
|
||||
__all__ = ("IndexesTest", )
|
||||
|
||||
@ -494,8 +495,7 @@ class IndexesTest(unittest.TestCase):
|
||||
obj = Test(a=1)
|
||||
obj.save()
|
||||
|
||||
connection = get_connection()
|
||||
IS_MONGODB_3 = connection.server_info()['versionArray'][0] >= 3
|
||||
IS_MONGODB_3 = get_mongodb_version()[0] >= 3
|
||||
|
||||
# Need to be explicit about covered indexes as mongoDB doesn't know if
|
||||
# the documents returned might have more keys in that here.
|
||||
@ -736,8 +736,7 @@ class IndexesTest(unittest.TestCase):
|
||||
if pymongo.version_tuple[0] < 2 and pymongo.version_tuple[1] < 3:
|
||||
raise SkipTest('pymongo needs to be 2.3 or higher for this test')
|
||||
|
||||
connection = get_connection()
|
||||
version_array = connection.server_info()['versionArray']
|
||||
version_array = get_mongodb_version()
|
||||
if version_array[0] < 2 and version_array[1] < 2:
|
||||
raise SkipTest('MongoDB needs to be 2.2 or higher for this test')
|
||||
|
||||
@ -875,6 +874,9 @@ class IndexesTest(unittest.TestCase):
|
||||
self.assertTrue(info['provider_ids.foo_1_provider_ids.bar_1']['sparse'])
|
||||
|
||||
def test_text_indexes(self):
|
||||
mongodb_ver = get_mongodb_version()
|
||||
if mongodb_ver[0] == 2 and mongodb_ver[1] < 6:
|
||||
raise SkipTest('Text search is disabled by default in MongoDB < v2.6')
|
||||
|
||||
class Book(Document):
|
||||
title = DictField()
|
||||
|
@ -603,12 +603,13 @@ class QuerySetTest(unittest.TestCase):
|
||||
class Scores(Document):
|
||||
high_score = IntField()
|
||||
low_score = IntField()
|
||||
scores = Scores(high_score=800, low_score=200)
|
||||
scores.save()
|
||||
|
||||
scores = Scores.objects.create(high_score=800, low_score=200)
|
||||
|
||||
Scores.objects(id=scores.id).update(min__low_score=150)
|
||||
self.assertEqual(Scores.objects(id=scores.id).get().low_score, 150)
|
||||
self.assertEqual(Scores.objects.get(id=scores.id).low_score, 150)
|
||||
Scores.objects(id=scores.id).update(min__low_score=250)
|
||||
self.assertEqual(Scores.objects(id=scores.id).get().low_score, 150)
|
||||
self.assertEqual(Scores.objects.get(id=scores.id).low_score, 150)
|
||||
|
||||
def test_updates_can_have_match_operators(self):
|
||||
|
||||
|
@ -35,8 +35,7 @@ class ConnectionTest(unittest.TestCase):
|
||||
mongoengine.connection._dbs = {}
|
||||
|
||||
def test_connect(self):
|
||||
"""Ensure that the connect() method works properly.
|
||||
"""
|
||||
"""Ensure that the connect() method works properly."""
|
||||
connect('mongoenginetest')
|
||||
|
||||
conn = get_connection()
|
||||
@ -146,8 +145,7 @@ class ConnectionTest(unittest.TestCase):
|
||||
self.assertEqual(expected_connection, actual_connection)
|
||||
|
||||
def test_connect_uri(self):
|
||||
"""Ensure that the connect() method works properly with uri's
|
||||
"""
|
||||
"""Ensure that the connect() method works properly with URIs."""
|
||||
c = connect(db='mongoenginetest', alias='admin')
|
||||
c.admin.system.users.remove({})
|
||||
c.mongoenginetest.system.users.remove({})
|
||||
@ -173,6 +171,7 @@ class ConnectionTest(unittest.TestCase):
|
||||
|
||||
c.admin.system.users.remove({})
|
||||
c.mongoenginetest.system.users.remove({})
|
||||
self.assertTrue(False)
|
||||
|
||||
def test_connect_uri_without_db(self):
|
||||
"""Ensure connect() method works properly if the URI doesn't
|
||||
|
@ -1,7 +1,7 @@
|
||||
import unittest
|
||||
|
||||
from mongoengine import connect
|
||||
from mongoengine.connection import get_db
|
||||
from mongoengine.connection import get_db, get_connection
|
||||
|
||||
MONGO_TEST_DB = 'mongoenginetest'
|
||||
|
||||
@ -20,3 +20,10 @@ class MongoDBTestCase(unittest.TestCase):
|
||||
@classmethod
|
||||
def tearDownClass(cls):
|
||||
cls._connection.drop_database(MONGO_TEST_DB)
|
||||
|
||||
|
||||
def get_mongodb_version():
|
||||
"""Return the version tuple of the MongoDB server that the default
|
||||
connection is connected to.
|
||||
"""
|
||||
return get_connection().server_info()['versionArray']
|
||||
|
Loading…
x
Reference in New Issue
Block a user