mirror of
https://github.com/django/django.git
synced 2025-08-04 02:48:35 +00:00
Fixed #17693. Input validation and tests for base36 conversion utils. Thanks Keryn Knight for the report.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@17525 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
41256d2341
commit
6072e108e2
3 changed files with 27 additions and 1 deletions
|
@ -1,3 +1,5 @@
|
|||
import sys
|
||||
|
||||
from django.utils import http
|
||||
from django.utils import unittest
|
||||
from django.utils.datastructures import MultiValueDict
|
||||
|
@ -98,3 +100,25 @@ class TestUtilsHttp(unittest.TestCase):
|
|||
utils.fix_IE_for_vary(ie_request, response)
|
||||
self.assertFalse('Vary' in response)
|
||||
|
||||
def test_base36(self):
|
||||
# reciprocity works
|
||||
for n in [0, 1, 1000, 1000000, sys.maxint]:
|
||||
self.assertEqual(n, http.base36_to_int(http.int_to_base36(n)))
|
||||
|
||||
# bad input
|
||||
for n in [-1, sys.maxint+1, '1', 'foo', {1:2}, (1,2,3)]:
|
||||
self.assertRaises(ValueError, http.int_to_base36, n)
|
||||
|
||||
for n in ['#', ' ']:
|
||||
self.assertRaises(ValueError, http.base36_to_int, n)
|
||||
|
||||
for n in [123, {1:2}, (1,2,3)]:
|
||||
self.assertRaises(TypeError, http.base36_to_int, n)
|
||||
|
||||
# non-integer input
|
||||
self.assertRaises(TypeError, http.int_to_base36, 3.141)
|
||||
|
||||
# more explicit output testing
|
||||
for n, b36 in [(0,'0'), (1,'1'), (42,'16'), (818469960,'django')]:
|
||||
self.assertEqual(http.int_to_base36(n), b36)
|
||||
self.assertEqual(http.base36_to_int(b36), n)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue