You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
163 lines
5.0 KiB
163 lines
5.0 KiB
# -*- coding: utf-8 -*- |
|
# Tests for the contrib/localflavor/ generic form fields. |
|
|
|
tests = r""" |
|
## Generic DateField ########################################################## |
|
|
|
>>> from django.contrib.localflavor.generic.forms import * |
|
|
|
A DateField that uses generic dd/mm/yy dates instead of mm/dd/yy where |
|
appropriate. |
|
|
|
>>> import datetime |
|
>>> f = DateField() |
|
>>> f.clean(datetime.date(2006, 10, 25)) |
|
datetime.date(2006, 10, 25) |
|
>>> f.clean(datetime.datetime(2006, 10, 25, 14, 30)) |
|
datetime.date(2006, 10, 25) |
|
>>> f.clean(datetime.datetime(2006, 10, 25, 14, 30, 59)) |
|
datetime.date(2006, 10, 25) |
|
>>> f.clean(datetime.datetime(2006, 10, 25, 14, 30, 59, 200)) |
|
datetime.date(2006, 10, 25) |
|
>>> f.clean('2006-10-25') |
|
datetime.date(2006, 10, 25) |
|
>>> f.clean('25/10/2006') |
|
datetime.date(2006, 10, 25) |
|
>>> f.clean('25/10/06') |
|
datetime.date(2006, 10, 25) |
|
>>> f.clean('Oct 25 2006') |
|
datetime.date(2006, 10, 25) |
|
>>> f.clean('October 25 2006') |
|
datetime.date(2006, 10, 25) |
|
>>> f.clean('October 25, 2006') |
|
datetime.date(2006, 10, 25) |
|
>>> f.clean('25 October 2006') |
|
datetime.date(2006, 10, 25) |
|
>>> f.clean('25 October, 2006') |
|
datetime.date(2006, 10, 25) |
|
>>> f.clean('2006-4-31') |
|
Traceback (most recent call last): |
|
... |
|
ValidationError: [u'Enter a valid date.'] |
|
>>> f.clean('200a-10-25') |
|
Traceback (most recent call last): |
|
... |
|
ValidationError: [u'Enter a valid date.'] |
|
>>> f.clean('10/25/06') |
|
Traceback (most recent call last): |
|
... |
|
ValidationError: [u'Enter a valid date.'] |
|
>>> f.clean(None) |
|
Traceback (most recent call last): |
|
... |
|
ValidationError: [u'This field is required.'] |
|
|
|
>>> f = DateField(required=False) |
|
>>> f.clean(None) |
|
>>> repr(f.clean(None)) |
|
'None' |
|
>>> f.clean('') |
|
>>> repr(f.clean('')) |
|
'None' |
|
|
|
DateField accepts an optional input_formats parameter: |
|
>>> f = DateField(input_formats=['%Y %m %d']) |
|
>>> f.clean(datetime.date(2006, 10, 25)) |
|
datetime.date(2006, 10, 25) |
|
>>> f.clean(datetime.datetime(2006, 10, 25, 14, 30)) |
|
datetime.date(2006, 10, 25) |
|
>>> f.clean('2006 10 25') |
|
datetime.date(2006, 10, 25) |
|
|
|
The input_formats parameter overrides all default input formats, |
|
so the default formats won't work unless you specify them: |
|
>>> f.clean('2006-10-25') |
|
Traceback (most recent call last): |
|
... |
|
ValidationError: [u'Enter a valid date.'] |
|
>>> f.clean('25/10/2006') |
|
Traceback (most recent call last): |
|
... |
|
ValidationError: [u'Enter a valid date.'] |
|
>>> f.clean('25/10/06') |
|
Traceback (most recent call last): |
|
... |
|
ValidationError: [u'Enter a valid date.'] |
|
|
|
## Generic DateTimeField ###################################################### |
|
|
|
A DateField that uses generic dd/mm/yy dates instead of mm/dd/yy where |
|
appropriate. |
|
|
|
>>> import datetime |
|
>>> f = DateTimeField() |
|
>>> f.clean(datetime.date(2006, 10, 25)) |
|
datetime.datetime(2006, 10, 25, 0, 0) |
|
>>> f.clean(datetime.datetime(2006, 10, 25, 14, 30)) |
|
datetime.datetime(2006, 10, 25, 14, 30) |
|
>>> f.clean(datetime.datetime(2006, 10, 25, 14, 30, 59)) |
|
datetime.datetime(2006, 10, 25, 14, 30, 59) |
|
>>> f.clean(datetime.datetime(2006, 10, 25, 14, 30, 59, 200)) |
|
datetime.datetime(2006, 10, 25, 14, 30, 59, 200) |
|
>>> f.clean('2006-10-25 14:30:45') |
|
datetime.datetime(2006, 10, 25, 14, 30, 45) |
|
>>> f.clean('2006-10-25 14:30:00') |
|
datetime.datetime(2006, 10, 25, 14, 30) |
|
>>> f.clean('2006-10-25 14:30') |
|
datetime.datetime(2006, 10, 25, 14, 30) |
|
>>> f.clean('2006-10-25') |
|
datetime.datetime(2006, 10, 25, 0, 0) |
|
>>> f.clean('25/10/2006 14:30:45') |
|
datetime.datetime(2006, 10, 25, 14, 30, 45) |
|
>>> f.clean('25/10/2006 14:30:00') |
|
datetime.datetime(2006, 10, 25, 14, 30) |
|
>>> f.clean('25/10/2006 14:30') |
|
datetime.datetime(2006, 10, 25, 14, 30) |
|
>>> f.clean('25/10/2006') |
|
datetime.datetime(2006, 10, 25, 0, 0) |
|
>>> f.clean('25/10/06 14:30:45') |
|
datetime.datetime(2006, 10, 25, 14, 30, 45) |
|
>>> f.clean('25/10/06 14:30:00') |
|
datetime.datetime(2006, 10, 25, 14, 30) |
|
>>> f.clean('25/10/06 14:30') |
|
datetime.datetime(2006, 10, 25, 14, 30) |
|
>>> f.clean('25/10/06') |
|
datetime.datetime(2006, 10, 25, 0, 0) |
|
>>> f.clean('hello') |
|
Traceback (most recent call last): |
|
... |
|
ValidationError: [u'Enter a valid date/time.'] |
|
>>> f.clean('2006-10-25 4:30 p.m.') |
|
Traceback (most recent call last): |
|
... |
|
ValidationError: [u'Enter a valid date/time.'] |
|
|
|
DateField accepts an optional input_formats parameter: |
|
>>> f = DateTimeField(input_formats=['%Y %m %d %I:%M %p']) |
|
>>> f.clean(datetime.date(2006, 10, 25)) |
|
datetime.datetime(2006, 10, 25, 0, 0) |
|
>>> f.clean(datetime.datetime(2006, 10, 25, 14, 30)) |
|
datetime.datetime(2006, 10, 25, 14, 30) |
|
>>> f.clean(datetime.datetime(2006, 10, 25, 14, 30, 59)) |
|
datetime.datetime(2006, 10, 25, 14, 30, 59) |
|
>>> f.clean(datetime.datetime(2006, 10, 25, 14, 30, 59, 200)) |
|
datetime.datetime(2006, 10, 25, 14, 30, 59, 200) |
|
>>> f.clean('2006 10 25 2:30 PM') |
|
datetime.datetime(2006, 10, 25, 14, 30) |
|
|
|
The input_formats parameter overrides all default input formats, |
|
so the default formats won't work unless you specify them: |
|
>>> f.clean('2006-10-25 14:30:45') |
|
Traceback (most recent call last): |
|
... |
|
ValidationError: [u'Enter a valid date/time.'] |
|
|
|
>>> f = DateTimeField(required=False) |
|
>>> f.clean(None) |
|
>>> repr(f.clean(None)) |
|
'None' |
|
>>> f.clean('') |
|
>>> repr(f.clean('')) |
|
'None' |
|
|
|
"""
|
|
|