From 8fdd57d272cb0885e3803d923f480ad483bc43d1 Mon Sep 17 00:00:00 2001 From: Ben Darnell Date: Sun, 28 Apr 2013 18:40:31 -0400 Subject: [PATCH] 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`. --- tornado/locale.py | 3 ++- tornado/test/locale_test.py | 9 +++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/tornado/locale.py b/tornado/locale.py index 66e9ff6d..310a5178 100644 --- a/tornado/locale.py +++ b/tornado/locale.py @@ -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: diff --git a/tornado/test/locale_test.py b/tornado/test/locale_test.py index 043f5d27..948228f1 100644 --- a/tornado/test/locale_test.py +++ b/tornado/test/locale_test.py @@ -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')