Author: SmileyChris
Date: 2011-04-13 04:28:42 -0700 (Wed, 13 Apr 2011)
New Revision: 16026

Modified:
   django/trunk/django/core/paginator.py
   django/trunk/tests/regressiontests/pagination_regress/tests.py
Log:
Fixes Paginator.validate_number not raising a PageNotAnInteger exception when 
passed a non-int-castable type.

Modified: django/trunk/django/core/paginator.py
===================================================================
--- django/trunk/django/core/paginator.py       2011-04-11 21:48:47 UTC (rev 
16025)
+++ django/trunk/django/core/paginator.py       2011-04-13 11:28:42 UTC (rev 
16026)
@@ -22,7 +22,7 @@
         "Validates the given 1-based page number."
         try:
             number = int(number)
-        except ValueError:
+        except (TypeError, ValueError):
             raise PageNotAnInteger('That page number is not an integer')
         if number < 1:
             raise EmptyPage('That page number is less than 1')

Modified: django/trunk/tests/regressiontests/pagination_regress/tests.py
===================================================================
--- django/trunk/tests/regressiontests/pagination_regress/tests.py      
2011-04-11 21:48:47 UTC (rev 16025)
+++ django/trunk/tests/regressiontests/pagination_regress/tests.py      
2011-04-13 11:28:42 UTC (rev 16026)
@@ -1,4 +1,4 @@
-from django.core.paginator import Paginator, EmptyPage
+from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
 from django.utils.unittest import TestCase
 
 class PaginatorTests(TestCase):
@@ -27,6 +27,15 @@
             "For '%s', expected %s but got %s.  Paginator parameters were: %s"
             % (name, expected, got, params))
 
+    def test_invalid_page_number(self):
+        """
+        Tests that invalid page numbers result in the correct exception being
+        raised.
+        """
+        paginator = Paginator([1, 2, 3], 2)
+        self.assertRaises(PageNotAnInteger, paginator.validate_number, None)
+        self.assertRaises(PageNotAnInteger, paginator.validate_number, 'x')
+
     def test_paginator(self):
         """
         Tests the paginator attributes using varying inputs.

-- 
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 this group at 
http://groups.google.com/group/django-updates?hl=en.

Reply via email to