From 9f4bf525f887db32b7260909a0140d68910aa042 Mon Sep 17 00:00:00 2001 From: Joseph Kocherhans Date: Wed, 24 Feb 2010 15:54:03 +0000 Subject: Fixed #12546. Objects with a __len__ that returns 0 can now be serialized. Thanks, casobn for the report and Alex Gaynor for the patch and tests. git-svn-id: http://code.djangoproject.com/svn/django/trunk@12576 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- tests/regressiontests/serializers_regress/models.py | 6 ++++++ tests/regressiontests/serializers_regress/tests.py | 10 +++++----- 2 files changed, 11 insertions(+), 5 deletions(-) (limited to 'tests') diff --git a/tests/regressiontests/serializers_regress/models.py b/tests/regressiontests/serializers_regress/models.py index ccd850326d..bec0a98202 100644 --- a/tests/regressiontests/serializers_regress/models.py +++ b/tests/regressiontests/serializers_regress/models.py @@ -258,3 +258,9 @@ class InheritBaseModel(BaseModel): class ExplicitInheritBaseModel(BaseModel): parent = models.OneToOneField(BaseModel) child_data = models.IntegerField() + +class LengthModel(models.Model): + data = models.IntegerField() + + def __len__(self): + return self.data diff --git a/tests/regressiontests/serializers_regress/tests.py b/tests/regressiontests/serializers_regress/tests.py index 11b53a5277..84e90ff7e1 100644 --- a/tests/regressiontests/serializers_regress/tests.py +++ b/tests/regressiontests/serializers_regress/tests.py @@ -8,7 +8,9 @@ forward, backwards and self references. """ -import unittest, datetime +import datetime +import decimal +import unittest from cStringIO import StringIO from django.utils.functional import curry @@ -18,10 +20,6 @@ from django.core import management from django.conf import settings from models import * -try: - import decimal -except ImportError: - from django.utils import _decimal as decimal # A set of functions that can be used to recreate # test data objects of various kinds. @@ -326,6 +324,8 @@ The end."""), (data_obj, 1001, BigIntegerData, -9223372036854775808), (data_obj, 1002, BigIntegerData, 0), (data_obj, 1003, BigIntegerData, None), + (data_obj, 1004, LengthModel, 0), + (data_obj, 1005, LengthModel, 1), ] # Because Oracle treats the empty string as NULL, Oracle is expected to fail -- cgit v1.3