[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#788251: [PATCH] Make package search case insensitive



Hello,

Here's a patch that transforms the package parameter to lower case
characters to enable case insensitive search.

Cheers,

Orestis
From c9d48dbc2123977981808d4342f3b77083a8ac71 Mon Sep 17 00:00:00 2001
From: Orestis Ioannou <orestis@oioannou.com>
Date: Wed, 26 Aug 2015 13:55:30 +0200
Subject: [PATCH] Make package search case insensitive

Closes: #788251
According to the policy, package names are always lower case so
transforming the search query into lower case enables case
insensitive package search.
---
 distro_tracker/core/tests/tests_views.py | 9 +++++++++
 distro_tracker/core/views.py             | 2 +-
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/distro_tracker/core/tests/tests_views.py b/distro_tracker/core/tests/tests_views.py
index 735d6a3..e45c116 100644
--- a/distro_tracker/core/tests/tests_views.py
+++ b/distro_tracker/core/tests/tests_views.py
@@ -264,6 +264,15 @@ class PackageSearchViewTest(TestCase):
         self.assertIn('package_name', response.context)
         self.assertEqual(response.context['package_name'], 'no-exist')
 
+    def test_case_insensitive_package_search(self):
+        """
+        Tests that package search is case insensitive
+        """
+        response = self.client.get(reverse('dtracker-package-search'), {
+            'package_name': 'DuMmy-PACKAGE'
+        })
+        self.assertRedirects(response, self.source_package.get_absolute_url())
+
 
 class OpenSearchDescriptionTest(TestCase):
     """
diff --git a/distro_tracker/core/views.py b/distro_tracker/core/views.py
index c6112a7..16b958b 100644
--- a/distro_tracker/core/views.py
+++ b/distro_tracker/core/views.py
@@ -94,7 +94,7 @@ class PackageSearchView(View):
     def get(self, request):
         if 'package_name' not in self.request.GET:
             raise Http404
-        package_name = self.request.GET.get('package_name')
+        package_name = self.request.GET.get('package_name').lower()
 
         package = get_web_package(package_name)
         if package is not None:
-- 
2.1.4

Attachment: signature.asc
Description: OpenPGP digital signature


Reply to: