#18706: django.utils.http.int_to_base36 raises ValueError instead of TypeError
for
invalid input
----------------------------------------+------------------------
Reporter: aaugustin | Owner: nobody
Type: Bug | Status: new
Component: Core (Other) | Version: master
Severity: Normal | Keywords:
Triage Stage: Unreviewed | Has patch: 0
Needs documentation: 0 | Needs tests: 0
Patch needs improvement: 0 | Easy pickings: 0
UI/UX: 0 |
----------------------------------------+------------------------
This behavior seems wrong to me, and unfortunately,
[https://github.com/django/django/blob/master/tests/regressiontests/utils/http.py#L117
it's tested].
Keeping it in Python 3 is needlessly complicated. Python 3 will rightly
raise a `TypeError` for invalid comparisons. Catching it and re-raising a
less appropriate `ValueError` seems just wrong to me.
Python 2:
{{{
>>> 0 <= '' <= 2**31 - 1
False
}}}
Python 3:
{{{
>>> 0 <= '' <= 2**31 - 1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unorderable types: int() <= str()
}}}
I'm attaching a patch that adds Python 3 compatibility (we can't use
`sys.maxint` any longer) and improves the handling of invalid inputs under
Python 2.
--
Ticket URL: <https://code.djangoproject.com/ticket/18706>
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 post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit https://groups.google.com/groups/opt_out.