1
0
mirror of https://github.com/django/django.git synced 2024-12-26 02:56:25 +00:00
django/tests/regressiontests/model_fields/tests.py
Malcolm Tredinnick 54f41e3507 Fixed #8101 -- Allow the strings '1' and '0' as filter values for boolean
fields (the latter was causing problems). This allows these values in URLs
(e.g. the admin filtering).

Not an ideal solution to the problem, but will do the job for the time being.


git-svn-id: http://code.djangoproject.com/svn/django/trunk@8691 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-08-29 02:40:56 +00:00

76 lines
1.6 KiB
Python

"""
>>> from django.db.models.fields import *
>>> try:
... from decimal import Decimal
... except ImportError:
... from django.utils._decimal import Decimal
# DecimalField
>>> f = DecimalField(max_digits=4, decimal_places=2)
>>> f.to_python(3) == Decimal("3")
True
>>> f.to_python("3.14") == Decimal("3.14")
True
>>> f.to_python("abc")
Traceback (most recent call last):
...
ValidationError: This value must be a decimal number.
>>> f = DecimalField(max_digits=5, decimal_places=1)
>>> x = f.to_python(2)
>>> y = f.to_python('2.6')
>>> f._format(x)
u'2.0'
>>> f._format(y)
u'2.6'
>>> f._format(None)
>>> f.get_db_prep_lookup('exact', None)
[None]
# DateTimeField and TimeField to_python should support usecs:
>>> f = DateTimeField()
>>> f.to_python('2001-01-02 03:04:05.000006')
datetime.datetime(2001, 1, 2, 3, 4, 5, 6)
>>> f.to_python('2001-01-02 03:04:05.999999')
datetime.datetime(2001, 1, 2, 3, 4, 5, 999999)
>>> f = TimeField()
>>> f.to_python('01:02:03.000004')
datetime.time(1, 2, 3, 4)
>>> f.to_python('01:02:03.999999')
datetime.time(1, 2, 3, 999999)
# Boolean and null boolean fields
>>> f = BooleanField()
>>> for val in (True, '1', 1):
... f.get_db_prep_lookup('exact', val)
[True]
[True]
[True]
>>> for val in (False, '0', 0):
... f.get_db_prep_lookup('exact', val)
[False]
[False]
[False]
>>> f = NullBooleanField()
>>> for val in (True, '1', 1):
... f.get_db_prep_lookup('exact', val)
[True]
[True]
[True]
>>> for val in (False, '0', 0):
... f.get_db_prep_lookup('exact', val)
[False]
[False]
[False]
>>> f.get_db_prep_lookup('exact', None)
[None]
"""