#23340: naturaltime documentation doesn't match behavior -------------------------------+-------------------- Reporter: zachborboa | Owner: nobody Type: Uncategorized | Status: new Component: Uncategorized | Version: master Severity: Normal | Keywords: Triage Stage: Unreviewed | Has patch: 0 Easy pickings: 0 | UI/UX: 0 -------------------------------+-------------------- The documentation for django.contrib.humanize.templatetags.humanize.naturaltime doesn't match it's behavior.
Test: {{{ from collections import OrderedDict from datetime import datetime from django.contrib.humanize.templatetags.humanize import naturaltime # From the documentation. times = OrderedDict() times['17 Feb 2007 16:30:00'] = 'now' times['17 Feb 2007 16:29:31'] = '29 seconds ago' times['17 Feb 2007 16:29:00'] = 'a minute ago' times['17 Feb 2007 16:25:35'] = '4 minutes ago' times['17 Feb 2007 15:30:29'] = 'an hour ago' times['17 Feb 2007 13:31:29'] = '2 hours ago' times['16 Feb 2007 13:31:29'] = '1 day, 3 hours ago' times['17 Feb 2007 16:30:30'] = '29 seconds from now' times['17 Feb 2007 16:31:00'] = 'a minute from now' times['17 Feb 2007 16:34:35'] = '4 minutes from now' times['17 Feb 2007 16:30:29'] = 'an hour from now' times['17 Feb 2007 18:31:29'] = '2 hours from now' times['18 Feb 2007 16:31:29'] = '1 day from now' times['26 Feb 2007 18:31:29'] = '1 week, 2 days from now' time_format = '%d %b %Y %H:%M:%S' now = datetime.strptime('17 Feb 2007 16:30:00', time_format) for time, expected_time in times.iteritems(): time = datetime.strptime(time, time_format) got = naturaltime(time).replace(u'\xa0', u' ') print ' {0}'.format(now) print ' {0}'.format(time) if got != expected_time: print '-- {0}'.format(got) print '++ {0}'.format(expected_time) else: print 'OK' print '-' * 80 }}} Modified "now". {{{ diff --git a/django/contrib/humanize/templatetags/humanize.py b/django/contrib/humanize/templatetags/humanize.py index 993b728..7e28b04 100644 --- a/django/contrib/humanize/templatetags/humanize.py +++ b/django/contrib/humanize/templatetags/humanize.py @@ -193,7 +193,7 @@ def naturaltime(value): if not isinstance(value, date): # datetime is a subclass of date return value - now = datetime.now(utc if is_aware(value) else None) + now = datetime.strptime('17 Feb 2007 16:30:00', '%d %b %Y %H:%M:%S') # TESTING if value < now: delta = now - value if delta.days != 0: }}} Output: {{{ 2007-02-17 16:30:00 2007-02-17 16:30:00 OK -------------------------------------------------------------------------------- 2007-02-17 16:30:00 2007-02-17 16:29:31 OK -------------------------------------------------------------------------------- 2007-02-17 16:30:00 2007-02-17 16:29:00 OK -------------------------------------------------------------------------------- 2007-02-17 16:30:00 2007-02-17 16:25:35 OK -------------------------------------------------------------------------------- 2007-02-17 16:30:00 2007-02-17 15:30:29 -- 59 minutes ago ++ an hour ago -------------------------------------------------------------------------------- 2007-02-17 16:30:00 2007-02-17 13:31:29 OK -------------------------------------------------------------------------------- 2007-02-17 16:30:00 2007-02-16 13:31:29 -- 1 day, 2 hours ago ++ 1 day, 3 hours ago -------------------------------------------------------------------------------- 2007-02-17 16:30:00 2007-02-17 16:30:30 -- 30 seconds from now ++ 29 seconds from now -------------------------------------------------------------------------------- 2007-02-17 16:30:00 2007-02-17 16:31:00 OK -------------------------------------------------------------------------------- 2007-02-17 16:30:00 2007-02-17 16:34:35 OK -------------------------------------------------------------------------------- 2007-02-17 16:30:00 2007-02-17 16:30:29 -- 29 seconds from now ++ an hour from now -------------------------------------------------------------------------------- 2007-02-17 16:30:00 2007-02-17 18:31:29 OK -------------------------------------------------------------------------------- 2007-02-17 16:30:00 2007-02-18 16:31:29 OK -------------------------------------------------------------------------------- 2007-02-17 16:30:00 2007-02-26 18:31:29 OK -------------------------------------------------------------------------------- }}} -- Ticket URL: <https://code.djangoproject.com/ticket/23340> Django <https://code.djangoproject.com/> The Web framework for perfectionists with deadlines. -- You received this message because you are subscribed to the Google Groups "Django updates" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-updates+unsubscr...@googlegroups.com. To post to this group, send email to django-updates@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/django-updates/053.cd05f44c337cf48329cb717cb384a770%40djangoproject.com. For more options, visit https://groups.google.com/d/optout.