Fix locale.format_date on python 3.

There's probably more work to be done on this largely-untested code,
but this was the case I could find by grepping for stray references
to `long`.
This commit is contained in:
Ben Darnell 2013-04-28 18:40:31 -04:00
parent 1a1b0498e9
commit 8fdd57d272
2 changed files with 11 additions and 1 deletions

View File

@ -43,6 +43,7 @@ from __future__ import absolute_import, division, print_function, with_statement
import csv
import datetime
import numbers
import os
import re
@ -287,7 +288,7 @@ class Locale(object):
"""
if self.code.startswith("ru"):
relative = False
if type(date) in (int, long, float):
if isinstance(date, numbers.Real):
date = datetime.datetime.utcfromtimestamp(date)
now = datetime.datetime.utcnow()
if date > now:

View File

@ -1,5 +1,6 @@
from __future__ import absolute_import, division, print_function, with_statement
import datetime
import os
import tornado.locale
from tornado.escape import utf8
@ -48,3 +49,11 @@ class LocaleDataTest(unittest.TestCase):
self.assertTrue(isinstance(name, unicode_type))
self.assertEqual(name, u('Espa\u00f1ol'))
self.assertEqual(utf8(name), b'Espa\xc3\xb1ol')
class EnglishTest(unittest.TestCase):
def test_format_date(self):
locale = tornado.locale.get('en_US')
date = datetime.datetime(2013, 4, 28, 18, 35)
self.assertEqual(locale.format_date(date, full_format=True),
'April 28, 2013 at 6:35 pm')