From e62c35b040b9bcc3b9d99e6ba87b1fa34b5a5af1 Mon Sep 17 00:00:00 2001 From: Jorge Bastida Date: Fri, 7 Dec 2012 16:21:31 +0000 Subject: [PATCH] Add more tests --- tests/test_queryset.py | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/tests/test_queryset.py b/tests/test_queryset.py index 1920d2f2..09a48233 100644 --- a/tests/test_queryset.py +++ b/tests/test_queryset.py @@ -3693,20 +3693,36 @@ class QueryFieldListTest(unittest.TestCase): def test_as_pymongo(self): + from decimal import Decimal + class User(Document): id = ObjectIdField('_id') name = StringField() age = IntField() + price = DecimalField() User.drop_collection() - User(name="Bob Dole", age=89).save() - User(name="Barack Obama", age=51).save() + User(name="Bob Dole", age=89, price=Decimal('1.11')).save() + User(name="Barack Obama", age=51, price=Decimal('2.22')).save() - users = [u for u in User.objects.only('name').as_pymongo()] - self.assertTrue(isinstance(users[0], dict)) - self.assertTrue(isinstance(users[1], dict)) - self.assertEqual(users[0]['name'], 'Bob Dole') - self.assertEqual(users[1]['name'], 'Barack Obama') + users = User.objects.only('name', 'price').as_pymongo() + 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'], '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__': unittest.main()