Added support for creating a geo2d index by prefixing the field name with a *

This commit is contained in:
Robert Kajic
2012-01-31 22:31:24 +01:00
parent 13f38b1c1d
commit d3962c4f7d
2 changed files with 26 additions and 4 deletions

View File

@@ -658,6 +658,26 @@ class DocumentTest(unittest.TestCase):
BlogPost.drop_collection()
def test_explicit_geo2d_index(self):
"""Ensure that geo2d indexes work when created via meta[indexes]
"""
class Place(Document):
location = DictField()
meta = {
'indexes': [
'*location.point',
],
}
Place.drop_collection()
info = Place.objects._collection.index_information()
# Indexes are lazy so use list() to perform query
list(Place.objects)
info = Place.objects._collection.index_information()
info = [value['key'] for key, value in info.iteritems()]
self.assertTrue([('location.point', '2d')] in info)
def test_dictionary_indexes(self):
"""Ensure that indexes are used when meta[indexes] contains dictionaries
instead of lists.