Updated humanize tests to use the FixedOffset timezone from the utils and removed a bit code smell while I'm here.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@16232 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Jannis Leidel 2011-05-17 10:15:58 +00:00
parent 66fd824ee0
commit 9ad005ec1c
1 changed files with 8 additions and 30 deletions

View File

@ -1,46 +1,25 @@
from __future__ import with_statement from __future__ import with_statement
from datetime import timedelta, date, datetime, tzinfo, timedelta from datetime import timedelta, date, datetime, tzinfo
from django.conf import settings from django.template import Template, Context, add_to_builtins, defaultfilters
from django.template import Template, Context, add_to_builtins
from django.test import TestCase from django.test import TestCase
from django.utils import translation from django.utils import translation, tzinfo
from django.utils.dateformat import DateFormat
from django.utils.translation import ugettext as _ from django.utils.translation import ugettext as _
from django.utils.html import escape from django.utils.html import escape
from django.conf import settings
add_to_builtins('django.contrib.humanize.templatetags.humanize') add_to_builtins('django.contrib.humanize.templatetags.humanize')
class FixedOffset(tzinfo):
"""Fixed offset in hours east from UTC."""
def __init__(self, offset, name):
self.__offset = timedelta(hours=offset)
self.__name = name
def utcoffset(self, dt):
return self.__offset
def tzname(self, dt):
return self.__name
def dst(self, dt):
return timedelta(0)
class HumanizeTests(TestCase): class HumanizeTests(TestCase):
def humanize_tester(self, test_list, result_list, method): def humanize_tester(self, test_list, result_list, method):
# Using max below ensures we go through both lists # Using max below ensures we go through both lists
# However, if the lists are not equal length, this raises an exception # However, if the lists are not equal length, this raises an exception
for index in xrange(max(len(test_list), len(result_list))): for test_content, result in zip(test_list, result_list):
test_content = test_list[index]
t = Template('{{ test_content|%s }}' % method) t = Template('{{ test_content|%s }}' % method)
rendered = t.render(Context(locals())).strip() rendered = t.render(Context(locals())).strip()
self.assertEqual(rendered, escape(result_list[index]), self.assertEqual(rendered, escape(result),
msg="%s test failed, produced %s, should've produced %s" % (method, rendered, result_list[index])) msg="%s test failed, produced '%s', should've produced '%s'" % (method, rendered, result))
def test_ordinal(self): def test_ordinal(self):
test_list = ('1','2','3','4','11','12', test_list = ('1','2','3','4','11','12',
@ -98,7 +77,6 @@ class HumanizeTests(TestCase):
self.humanize_tester(test_list, result_list, 'apnumber') self.humanize_tester(test_list, result_list, 'apnumber')
def test_naturalday(self): def test_naturalday(self):
from django.template import defaultfilters
today = date.today() today = date.today()
yesterday = today - timedelta(days=1) yesterday = today - timedelta(days=1)
tomorrow = today + timedelta(days=1) tomorrow = today + timedelta(days=1)
@ -140,8 +118,8 @@ class HumanizeTests(TestCase):
from django.contrib.humanize.templatetags.humanize import naturalday from django.contrib.humanize.templatetags.humanize import naturalday
today = date.today() today = date.today()
tz_one = FixedOffset(-12, 'TzOne') tz_one = tzinfo.FixedOffset(timedelta(hours=-12))
tz_two = FixedOffset(12, 'TzTwo') tz_two = tzinfo.FixedOffset(timedelta(hours=12))
# Can be today or yesterday # Can be today or yesterday
date_one = datetime(today.year, today.month, today.day, tzinfo=tz_one) date_one = datetime(today.year, today.month, today.day, tzinfo=tz_one)