Skip to content

Commit d4f38aa

Browse files
authored
Merge pull request #618 from ziadhany/view_fix
validation for page_no and fix presentation url .
2 parents 28f5659 + a63826e commit d4f38aa

File tree

3 files changed

+27
-3
lines changed

3 files changed

+27
-3
lines changed

README.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ compromise.
7777

7878
Recent presentations:
7979

80-
- `Open Source Summit 2020 <docs/Why-Is-There-No-Free-Software-Vulnerability-Database-v1.0.pdf>`__
80+
- `Open Source Summit 2020 <docs/Presentations/Why-Is-There-No-Free-Software-Vulnerability-Database-v1.0.pdf>`__
8181

8282

8383

vulnerabilities/tests/test_view.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
from django.test import Client
2+
from django.test import TestCase
3+
4+
5+
class PackageSearchTestCase(TestCase):
6+
def setUp(self):
7+
self.client = Client()
8+
9+
def test_paginator(self):
10+
"""
11+
Test PackageSearch paginator
12+
"""
13+
response = self.client.get("/packages/search?type=deb&name=&page=1")
14+
self.assertEqual(response.status_code, 200)
15+
response = self.client.get("/packages/search?type=deb&name=&page=*")
16+
self.assertEqual(response.status_code, 200)
17+
response = self.client.get("/packages/search?type=deb&name=&page=")
18+
self.assertEqual(response.status_code, 200)
19+
response = self.client.get("/packages/search?type=&name=&page=")
20+
self.assertEqual(response.status_code, 200)

vulnerabilities/views.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@
1919
# for any legal advice.
2020
# VulnerableCode is a free software code scanning tool from nexB Inc. and others.
2121
# Visit https://github.com/nexB/vulnerablecode/ for support and download.
22-
2322
from urllib.parse import urlencode
2423

24+
from django.core.paginator import PageNotAnInteger
2525
from django.core.paginator import Paginator
2626
from django.db.models import Count
2727
from django.db.models import Q
@@ -50,7 +50,11 @@ def get(self, request):
5050
if request.GET:
5151
packages = self.request_to_queryset(request)
5252
result_size = len(packages)
53-
page_no = int(request.GET.get("page", 1))
53+
try:
54+
page_no = request.GET.get("page", 1)
55+
packages = Paginator(packages, 50).get_page(page_no)
56+
except PageNotAnInteger:
57+
packages = Paginator(packages, 50).get_page(1)
5458
packages = Paginator(packages, 50).get_page(page_no)
5559
context["packages"] = packages
5660
context["searched_for"] = urlencode(

0 commit comments

Comments
 (0)