From a7dc2c06532586f8988d04d8f697c4ebfcabfde8 Mon Sep 17 00:00:00 2001 From: Adrian Holovaty Date: Sun, 10 Jan 2010 17:28:20 +0000 Subject: [PATCH] Fixed #10979 -- Fixed misleading FixedOffset.__repr__(). Thanks, gsong git-svn-id: http://code.djangoproject.com/svn/django/trunk@12164 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/utils/tzinfo.py | 3 ++- tests/regressiontests/utils/tests.py | 2 ++ tests/regressiontests/utils/tzinfo.py | 30 +++++++++++++++++++++++++++ 3 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 tests/regressiontests/utils/tzinfo.py diff --git a/django/utils/tzinfo.py b/django/utils/tzinfo.py index dc583465b2f..fc7fa8250f5 100644 --- a/django/utils/tzinfo.py +++ b/django/utils/tzinfo.py @@ -13,7 +13,8 @@ class FixedOffset(tzinfo): else: self.__offset = timedelta(minutes=offset) - self.__name = u"%+03d%02d" % (offset / 60, offset % 60) + sign = offset < 0 and '-' or '+' + self.__name = u"%s%02d%02d" % (sign, abs(offset) / 60., abs(offset) % 60) def __repr__(self): return self.__name diff --git a/tests/regressiontests/utils/tests.py b/tests/regressiontests/utils/tests.py index cd93fb9c013..daae84b6d5e 100644 --- a/tests/regressiontests/utils/tests.py +++ b/tests/regressiontests/utils/tests.py @@ -10,6 +10,7 @@ from django.utils.functional import SimpleLazyObject import timesince import datastructures import itercompat +import tzinfo from decorators import DecoratorFromMiddlewareTests from functional import FunctionalTestCase @@ -26,6 +27,7 @@ __test__ = { 'timesince': timesince, 'datastructures': datastructures, 'itercompat': itercompat, + 'tzinfo': tzinfo, } from dateformat import * diff --git a/tests/regressiontests/utils/tzinfo.py b/tests/regressiontests/utils/tzinfo.py new file mode 100644 index 00000000000..b62570c2253 --- /dev/null +++ b/tests/regressiontests/utils/tzinfo.py @@ -0,0 +1,30 @@ +""" +>>> from django.utils.tzinfo import FixedOffset + +>>> FixedOffset(0) ++0000 +>>> FixedOffset(60) ++0100 +>>> FixedOffset(-60) +-0100 +>>> FixedOffset(280) ++0440 +>>> FixedOffset(-280) +-0440 +>>> FixedOffset(-78.4) +-0118 +>>> FixedOffset(78.4) ++0118 +>>> FixedOffset(-5.5*60) +-0530 +>>> FixedOffset(5.5*60) ++0530 +>>> FixedOffset(-.5*60) +-0030 +>>> FixedOffset(.5*60) ++0030 +""" + +if __name__ == "__main__": + import doctest + doctest.testmod()