Add more tests

This commit is contained in:
Jorge Bastida 2012-12-07 16:21:31 +00:00
parent d5ec3c6a31
commit e62c35b040

View File

@ -3693,20 +3693,36 @@ class QueryFieldListTest(unittest.TestCase):
def test_as_pymongo(self): def test_as_pymongo(self):
from decimal import Decimal
class User(Document): class User(Document):
id = ObjectIdField('_id') id = ObjectIdField('_id')
name = StringField() name = StringField()
age = IntField() age = IntField()
price = DecimalField()
User.drop_collection() User.drop_collection()
User(name="Bob Dole", age=89).save() User(name="Bob Dole", age=89, price=Decimal('1.11')).save()
User(name="Barack Obama", age=51).save() User(name="Barack Obama", age=51, price=Decimal('2.22')).save()
users = [u for u in User.objects.only('name').as_pymongo()] users = User.objects.only('name', 'price').as_pymongo()
self.assertTrue(isinstance(users[0], dict)) results = list(users)
self.assertTrue(isinstance(users[1], dict)) self.assertTrue(isinstance(results[0], dict))
self.assertEqual(users[0]['name'], 'Bob Dole') self.assertTrue(isinstance(results[1], dict))
self.assertEqual(users[1]['name'], 'Barack Obama') self.assertEqual(results[0]['name'], 'Bob Dole')
self.assertEqual(results[0]['price'], '1.11')
self.assertEqual(results[1]['name'], 'Barack Obama')
self.assertEqual(results[1]['price'], '2.22')
# Test coerce_types
users = User.objects.only('name', 'price').as_pymongo(coerce_types=True)
results = list(users)
self.assertTrue(isinstance(results[0], dict))
self.assertTrue(isinstance(results[1], dict))
self.assertEqual(results[0]['name'], 'Bob Dole')
self.assertEqual(results[0]['price'], Decimal('1.11'))
self.assertEqual(results[1]['name'], 'Barack Obama')
self.assertEqual(results[1]['price'], Decimal('2.22'))
if __name__ == '__main__': if __name__ == '__main__':
unittest.main() unittest.main()