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 datetime import datetime
|
||||||
|
|
||||||
from mongoengine import *
|
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", )
|
__all__ = ("IndexesTest", )
|
||||||
|
|
||||||
@ -494,8 +495,7 @@ class IndexesTest(unittest.TestCase):
|
|||||||
obj = Test(a=1)
|
obj = Test(a=1)
|
||||||
obj.save()
|
obj.save()
|
||||||
|
|
||||||
connection = get_connection()
|
IS_MONGODB_3 = get_mongodb_version()[0] >= 3
|
||||||
IS_MONGODB_3 = connection.server_info()['versionArray'][0] >= 3
|
|
||||||
|
|
||||||
# Need to be explicit about covered indexes as mongoDB doesn't know if
|
# Need to be explicit about covered indexes as mongoDB doesn't know if
|
||||||
# the documents returned might have more keys in that here.
|
# 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:
|
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')
|
raise SkipTest('pymongo needs to be 2.3 or higher for this test')
|
||||||
|
|
||||||
connection = get_connection()
|
version_array = get_mongodb_version()
|
||||||
version_array = connection.server_info()['versionArray']
|
|
||||||
if version_array[0] < 2 and version_array[1] < 2:
|
if version_array[0] < 2 and version_array[1] < 2:
|
||||||
raise SkipTest('MongoDB needs to be 2.2 or higher for this test')
|
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'])
|
self.assertTrue(info['provider_ids.foo_1_provider_ids.bar_1']['sparse'])
|
||||||
|
|
||||||
def test_text_indexes(self):
|
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):
|
class Book(Document):
|
||||||
title = DictField()
|
title = DictField()
|
||||||
|
@ -603,12 +603,13 @@ class QuerySetTest(unittest.TestCase):
|
|||||||
class Scores(Document):
|
class Scores(Document):
|
||||||
high_score = IntField()
|
high_score = IntField()
|
||||||
low_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)
|
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)
|
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):
|
def test_updates_can_have_match_operators(self):
|
||||||
|
|
||||||
|
@ -35,8 +35,7 @@ class ConnectionTest(unittest.TestCase):
|
|||||||
mongoengine.connection._dbs = {}
|
mongoengine.connection._dbs = {}
|
||||||
|
|
||||||
def test_connect(self):
|
def test_connect(self):
|
||||||
"""Ensure that the connect() method works properly.
|
"""Ensure that the connect() method works properly."""
|
||||||
"""
|
|
||||||
connect('mongoenginetest')
|
connect('mongoenginetest')
|
||||||
|
|
||||||
conn = get_connection()
|
conn = get_connection()
|
||||||
@ -146,8 +145,7 @@ class ConnectionTest(unittest.TestCase):
|
|||||||
self.assertEqual(expected_connection, actual_connection)
|
self.assertEqual(expected_connection, actual_connection)
|
||||||
|
|
||||||
def test_connect_uri(self):
|
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 = connect(db='mongoenginetest', alias='admin')
|
||||||
c.admin.system.users.remove({})
|
c.admin.system.users.remove({})
|
||||||
c.mongoenginetest.system.users.remove({})
|
c.mongoenginetest.system.users.remove({})
|
||||||
@ -173,6 +171,7 @@ class ConnectionTest(unittest.TestCase):
|
|||||||
|
|
||||||
c.admin.system.users.remove({})
|
c.admin.system.users.remove({})
|
||||||
c.mongoenginetest.system.users.remove({})
|
c.mongoenginetest.system.users.remove({})
|
||||||
|
self.assertTrue(False)
|
||||||
|
|
||||||
def test_connect_uri_without_db(self):
|
def test_connect_uri_without_db(self):
|
||||||
"""Ensure connect() method works properly if the URI doesn't
|
"""Ensure connect() method works properly if the URI doesn't
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
from mongoengine import connect
|
from mongoengine import connect
|
||||||
from mongoengine.connection import get_db
|
from mongoengine.connection import get_db, get_connection
|
||||||
|
|
||||||
MONGO_TEST_DB = 'mongoenginetest'
|
MONGO_TEST_DB = 'mongoenginetest'
|
||||||
|
|
||||||
@ -20,3 +20,10 @@ class MongoDBTestCase(unittest.TestCase):
|
|||||||
@classmethod
|
@classmethod
|
||||||
def tearDownClass(cls):
|
def tearDownClass(cls):
|
||||||
cls._connection.drop_database(MONGO_TEST_DB)
|
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