diff options
| author | Russell Keith-Magee <russell@keith-magee.com> | 2010-02-13 14:06:13 +0000 |
|---|---|---|
| committer | Russell Keith-Magee <russell@keith-magee.com> | 2010-02-13 14:06:13 +0000 |
| commit | d751f2cade81b6a8cf325ab5dd081c015f727ef3 (patch) | |
| tree | ddc367c04b84f2e8c7aa1eb7c0078deaa8740959 /tests/regressiontests/utils | |
| parent | 1d9bc59534fd765f8ae1aeb4ca039899bc2b452b (diff) | |
[1.1.X] Fixed #12524 -- Clarified handling of pre-1000AD dates in datetime_safe (and thus, the serializers). Patch includes moving the datetime_safe tests into the utils regressiontests module. Thanks to gsf for the report and initial patch.
Backport of r12423 from trunk.
git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.1.X@12424 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'tests/regressiontests/utils')
| -rw-r--r-- | tests/regressiontests/utils/datetime_safe.py | 44 | ||||
| -rw-r--r-- | tests/regressiontests/utils/tests.py | 2 |
2 files changed, 46 insertions, 0 deletions
diff --git a/tests/regressiontests/utils/datetime_safe.py b/tests/regressiontests/utils/datetime_safe.py new file mode 100644 index 0000000000..6c3e7df359 --- /dev/null +++ b/tests/regressiontests/utils/datetime_safe.py @@ -0,0 +1,44 @@ +""" +>>> from datetime import date as original_date, datetime as original_datetime +>>> from django.utils.datetime_safe import date, datetime +>>> just_safe = (1900, 1, 1) +>>> just_unsafe = (1899, 12, 31, 23, 59, 59) +>>> really_old = (20, 1, 1) +>>> more_recent = (2006, 1, 1) + +>>> original_datetime(*more_recent) == datetime(*more_recent) +True +>>> original_datetime(*really_old) == datetime(*really_old) +True +>>> original_date(*more_recent) == date(*more_recent) +True +>>> original_date(*really_old) == date(*really_old) +True + +>>> original_date(*just_safe).strftime('%Y-%m-%d') == date(*just_safe).strftime('%Y-%m-%d') +True +>>> original_datetime(*just_safe).strftime('%Y-%m-%d') == datetime(*just_safe).strftime('%Y-%m-%d') +True + +>>> date(*just_unsafe[:3]).strftime('%Y-%m-%d (weekday %w)') +'1899-12-31 (weekday 0)' +>>> date(*just_safe).strftime('%Y-%m-%d (weekday %w)') +'1900-01-01 (weekday 1)' + +>>> datetime(*just_unsafe).strftime('%Y-%m-%d %H:%M:%S (weekday %w)') +'1899-12-31 23:59:59 (weekday 0)' +>>> datetime(*just_safe).strftime('%Y-%m-%d %H:%M:%S (weekday %w)') +'1900-01-01 00:00:00 (weekday 1)' + +>>> date(*just_safe).strftime('%y') # %y will error before this date +'00' +>>> datetime(*just_safe).strftime('%y') +'00' + +>>> date(1850, 8, 2).strftime("%Y/%m/%d was a %A") +'1850/08/02 was a Friday' + +# Regression for #12524 -- Check that pre-1000AD dates are padded with zeros if necessary +>>> date(1, 1, 1).strftime("%Y/%m/%d was a %A") +'0001/01/01 was a Monday' +""" diff --git a/tests/regressiontests/utils/tests.py b/tests/regressiontests/utils/tests.py index aaa2944511..812276b554 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 dateformat +import datetime_safe import itercompat from decorators import DecoratorFromMiddlewareTests from functional import FunctionalTestCase @@ -25,6 +26,7 @@ except NameError: __test__ = { 'timesince': timesince, 'datastructures': datastructures, + 'datetime_safe': datetime_safe, 'itercompat': itercompat, } |
