From 7e198e4380d42116b0ccb53e8921d2f71ff69c78 Mon Sep 17 00:00:00 2001 From: Ziad Date: Tue, 8 Feb 2022 20:54:32 +0200 Subject: [PATCH 1/3] fix the black format Signed-off-by: Ziad --- vulnerabilities/tests/test_view.py | 19 +++++++++++++++++++ vulnerabilities/views.py | 8 ++++++-- 2 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 vulnerabilities/tests/test_view.py diff --git a/vulnerabilities/tests/test_view.py b/vulnerabilities/tests/test_view.py new file mode 100644 index 000000000..336553d0b --- /dev/null +++ b/vulnerabilities/tests/test_view.py @@ -0,0 +1,19 @@ +from django.test import TestCase, Client + + +class PackageSearchTestCase(TestCase): + def setUp(self): + self.client = Client() + + def test_paginator(self): + """ + Test PackageSearch paginator + """ + response = self.client.get("/packages/search?type=deb&name=&page=1") + self.assertEqual(response.status_code, 200) + response = self.client.get("/packages/search?type=deb&name=&page=*") + self.assertEqual(response.status_code, 200) + response = self.client.get("/packages/search?type=deb&name=&page=") + self.assertEqual(response.status_code, 200) + response = self.client.get("/packages/search?type=&name=&page=") + self.assertEqual(response.status_code, 200) diff --git a/vulnerabilities/views.py b/vulnerabilities/views.py index 0c916f9bb..371fa3a0e 100644 --- a/vulnerabilities/views.py +++ b/vulnerabilities/views.py @@ -22,7 +22,7 @@ from urllib.parse import urlencode -from django.core.paginator import Paginator +from django.core.paginator import Paginator, PageNotAnInteger from django.db.models import Count from django.db.models import Q from django.http import HttpResponse @@ -50,7 +50,11 @@ def get(self, request): if request.GET: packages = self.request_to_queryset(request) result_size = len(packages) - page_no = int(request.GET.get("page", 1)) + try: + page_no = request.GET.get("page", 1) + packages = Paginator(packages, 50).get_page(page_no) + except PageNotAnInteger: + packages = Paginator(packages, 50).get_page(1) packages = Paginator(packages, 50).get_page(page_no) context["packages"] = packages context["searched_for"] = urlencode( From d98e37f3a01df733c81098c2ec07d7b422b7c8c3 Mon Sep 17 00:00:00 2001 From: Ziad Date: Tue, 8 Feb 2022 21:48:23 +0200 Subject: [PATCH 2/3] fix Presentation url Signed-off-by: Ziad --- README.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.rst b/README.rst index 31034387f..b3434ef83 100644 --- a/README.rst +++ b/README.rst @@ -77,7 +77,7 @@ compromise. Recent presentations: -- `Open Source Summit 2020 `__ +- `Open Source Summit 2020 `__ From a63826e7493495db9ab2215c5ca2360a12b1f770 Mon Sep 17 00:00:00 2001 From: Ziad Date: Mon, 14 Feb 2022 17:21:18 +0200 Subject: [PATCH 3/3] fix view ,add a test and sort imports. Signed-off-by: Ziad --- vulnerabilities/tests/test_view.py | 3 ++- vulnerabilities/views.py | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/vulnerabilities/tests/test_view.py b/vulnerabilities/tests/test_view.py index 336553d0b..fc044ffd2 100644 --- a/vulnerabilities/tests/test_view.py +++ b/vulnerabilities/tests/test_view.py @@ -1,4 +1,5 @@ -from django.test import TestCase, Client +from django.test import Client +from django.test import TestCase class PackageSearchTestCase(TestCase): diff --git a/vulnerabilities/views.py b/vulnerabilities/views.py index b0eebbe2d..21516fce4 100644 --- a/vulnerabilities/views.py +++ b/vulnerabilities/views.py @@ -19,10 +19,10 @@ # for any legal advice. # VulnerableCode is a free software code scanning tool from nexB Inc. and others. # Visit https://github.com/nexB/vulnerablecode/ for support and download. - from urllib.parse import urlencode -from django.core.paginator import Paginator, PageNotAnInteger +from django.core.paginator import PageNotAnInteger +from django.core.paginator import Paginator from django.db.models import Count from django.db.models import Q from django.http import HttpResponse