Adding tests to test the get query

This commit is contained in:
James Punteney 2010-01-16 14:51:13 -05:00
parent 47e4dd40cd
commit e0becc109d
2 changed files with 22 additions and 2 deletions

View File

@ -14,7 +14,6 @@ REPR_OUTPUT_SIZE = 20
class InvalidQueryError(Exception):
pass
class OperationError(Exception):
pass

View File

@ -2,7 +2,7 @@ import unittest
import pymongo
from datetime import datetime
from mongoengine.queryset import QuerySet
from mongoengine.queryset import QuerySet, MultipleObjectsReturned, DoesNotExist
from mongoengine import *
@ -135,6 +135,27 @@ class QuerySetTest(unittest.TestCase):
person = self.Person.objects.with_id(person1.id)
self.assertEqual(person.name, "User A")
def test_find_only_one(self):
"""Ensure that a query using find_one returns a valid result.
"""
# Try retrieving when no objects exists
self.assertRaises(DoesNotExist, self.Person.objects.get)
person1 = self.Person(name="User A", age=20)
person1.save()
person2 = self.Person(name="User B", age=30)
person2.save()
# Retrieve the first person from the database
self.assertRaises(MultipleObjectsReturned, self.Person.objects.get)
# Use a query to filter the people found to just person2
person = self.Person.objects.get(age=30)
self.assertEqual(person.name, "User B")
person = self.Person.objects.get(age__lt=30)
self.assertEqual(person.name, "User A")
def test_filter_chaining(self):
"""Ensure filters can be chained together.
"""