summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorBrian Rosner <brosner@gmail.com>2009-02-11 20:13:17 +0000
committerBrian Rosner <brosner@gmail.com>2009-02-11 20:13:17 +0000
commite5cd43e5884ec5860cb7f421b6f84eda93e70b3b (patch)
treeb78d68f06eb2a7af24f2a230dc9c7c25b9531416 /tests
parente9af96de1edac106ad30994865a0ee2233bed984 (diff)
Fixed #5903 -- DecimalField.get_default() now correctly returns a Decimal object when the model instance was not retrieved from the database. Thanks Justin Driscoll and pigletto.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@9823 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'tests')
-rw-r--r--tests/modeltests/serializers/models.py10
-rw-r--r--tests/regressiontests/model_fields/tests.py4
2 files changed, 12 insertions, 2 deletions
diff --git a/tests/modeltests/serializers/models.py b/tests/modeltests/serializers/models.py
index f9130d1dfc..eda19ecc4f 100644
--- a/tests/modeltests/serializers/models.py
+++ b/tests/modeltests/serializers/models.py
@@ -6,6 +6,11 @@
``QuerySet`` objects to and from "flat" data (i.e. strings).
"""
+try:
+ from decimal import Decimal
+except ImportError:
+ from django.utils._decimal import Decimal # Python 2.3 fallback
+
from django.db import models
class Category(models.Model):
@@ -57,6 +62,7 @@ class Actor(models.Model):
class Movie(models.Model):
actor = models.ForeignKey(Actor)
title = models.CharField(max_length=50)
+ price = models.DecimalField(max_digits=6, decimal_places=2, default=Decimal('0.00'))
class Meta:
ordering = ('title',)
@@ -194,7 +200,7 @@ __test__ = {'API_TESTS':"""
# Let's serialize our movie
>>> print serializers.serialize("json", [mv])
-[{"pk": 1, "model": "serializers.movie", "fields": {"actor": "Za\u017c\u00f3\u0142\u0107", "title": "G\u0119\u015bl\u0105 ja\u017a\u0144"}}]
+[{"pk": 1, "model": "serializers.movie", "fields": {"price": "0.00", "actor": "Za\u017c\u00f3\u0142\u0107", "title": "G\u0119\u015bl\u0105 ja\u017a\u0144"}}]
# Deserialization of movie
>>> list(serializers.deserialize('json', serializers.serialize('json', [mv])))[0].object.title
@@ -204,7 +210,7 @@ u'G\u0119\u015bl\u0105 ja\u017a\u0144'
# Primary key is None in case of not saved model
>>> mv2 = Movie(title="Movie 2", actor=ac)
>>> print serializers.serialize("json", [mv2])
-[{"pk": null, "model": "serializers.movie", "fields": {"actor": "Za\u017c\u00f3\u0142\u0107", "title": "Movie 2"}}]
+[{"pk": null, "model": "serializers.movie", "fields": {"price": "0.00", "actor": "Za\u017c\u00f3\u0142\u0107", "title": "Movie 2"}}]
# Deserialization of null returns None for pk
>>> print list(serializers.deserialize('json', serializers.serialize('json', [mv2])))[0].object.id
diff --git a/tests/regressiontests/model_fields/tests.py b/tests/regressiontests/model_fields/tests.py
index 80ff4bada6..b1a572844f 100644
--- a/tests/regressiontests/model_fields/tests.py
+++ b/tests/regressiontests/model_fields/tests.py
@@ -20,6 +20,10 @@ Traceback (most recent call last):
...
ValidationError: This value must be a decimal number.
+>>> f = DecimalField(default=Decimal("0.00"))
+>>> f.get_default()
+Decimal("0.00")
+
>>> f = DecimalField(max_digits=5, decimal_places=1)
>>> x = f.to_python(2)
>>> y = f.to_python('2.6')