diff options
author | jelle van der Waa <jelle@vdwaa.nl> | 2019-02-09 22:26:17 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-02-09 22:26:17 +0100 |
commit | 1abcd3c8172cf87da1548f29e28f1adbc7d41c18 (patch) | |
tree | 6adee25a592c71625099aae13e3ac04f0dd5272f | |
parent | ac6be4410c22f5337b084f2855f49f48eccac1e6 (diff) | |
parent | 2f10c1cc150f419946679782d1950b6500cea98c (diff) | |
download | archweb-1abcd3c8172cf87da1548f29e28f1adbc7d41c18.tar.gz archweb-1abcd3c8172cf87da1548f29e28f1adbc7d41c18.zip |
Merge pull request #191 from jelly/test_fixes
Test fixes
-rw-r--r-- | packages/tests.py | 14 | ||||
-rw-r--r-- | packages/views/__init__.py | 34 | ||||
-rw-r--r-- | packages/views/search.py | 8 |
3 files changed, 33 insertions, 23 deletions
diff --git a/packages/tests.py b/packages/tests.py index 8c39e216..fecf27b6 100644 --- a/packages/tests.py +++ b/packages/tests.py @@ -186,11 +186,23 @@ class OpenSearch(TestCase): self.assertEqual(response.status_code, 200) def test_packages_suggest(self): + response = self.client.get('/opensearch/packages/suggest') + self.assertEqual(response.status_code, 200) + + def test_packages_suggest_lowercase(self): response = self.client.get('/opensearch/packages/suggest?q=linux') self.assertEqual(response.status_code, 200) self.assertIn('linux', response.content.decode()) - response = self.client.get('/opensearch/packages/suggest') + def test_packages_suggest_uppercase(self): + response = self.client.get('/opensearch/packages/suggest?q=LINUX') + self.assertEqual(response.status_code, 200) + self.assertIn('linux', response.content.decode()) + + response = self.client.get('/opensearch/packages/suggest?q=LINux') + self.assertEqual(response.status_code, 200) + self.assertIn('linux', response.content.decode()) + class PackageViews(TestCase): fixtures = ['main/fixtures/arches.json', 'main/fixtures/repos.json', diff --git a/packages/views/__init__.py b/packages/views/__init__.py index 4d254420..904043af 100644 --- a/packages/views/__init__.py +++ b/packages/views/__init__.py @@ -44,15 +44,12 @@ def opensearch_suggest(request): hashlib.md5(search_term.encode('utf-8')).hexdigest() to_json = cache.get(cache_key, None) if to_json is None: - q = Q(pkgname__startswith=search_term) - lookup = search_term.lower() - if search_term != lookup: - # package names are lowercase by convention, so include that in - # search if original wasn't lowercase already - q |= Q(pkgname__startswith=lookup) + # Package names are lowercase by convention + q = Q(pkgname__istartswith=search_term) + names = Package.objects.filter(q).values_list( - 'pkgname', flat=True).order_by('pkgname').distinct()[:10] - results = [search_term, list(names)] + 'pkgname', flat=True).order_by('pkgname').distinct()[:10] + results = (search_term, tuple(names)) to_json = json.dumps(results, ensure_ascii=False) cache.set(cache_key, to_json, 613) return HttpResponse(to_json, content_type='application/x-suggestions+json') @@ -77,12 +74,13 @@ def update(request): )) for pkg in pkgs: - if request.user not in pkg.maintainers: - prel = PackageRelation(pkgbase=pkg.pkgbase, - user=request.user, - type=PackageRelation.MAINTAINER) - count += 1 - prel.save() + if request.user in pkg.maintainers: + continue + + PackageRelation(pkgbase=pkg.pkgbase, + user=request.user, + type=PackageRelation.MAINTAINER).save() + count += 1 messages.info(request, "%d base packages adopted." % count) @@ -91,9 +89,11 @@ def update(request): # [community] -> [extra] moves for pkg in Package.objects.filter(id__in=ids): if request.user in pkg.maintainers: - rels = PackageRelation.objects.filter(pkgbase=pkg.pkgbase, - user=request.user, - type=PackageRelation.MAINTAINER) + rels = PackageRelation.objects.filter( + pkgbase=pkg.pkgbase, + user=request.user, + type=PackageRelation.MAINTAINER + ) count += rels.count() rels.delete() diff --git a/packages/views/search.py b/packages/views/search.py index 90fb9d95..4bcd5fa1 100644 --- a/packages/views/search.py +++ b/packages/views/search.py @@ -114,7 +114,7 @@ class SearchListView(ListView): paginate_by = 100 sort_fields = ("arch", "repo", "pkgname", "pkgbase", "compressed_size", - "installed_size", "build_date", "last_update", "flag_date") + "installed_size", "build_date", "last_update", "flag_date") allowed_sort = list(sort_fields) + ["-" + s for s in sort_fields] def get(self, request, *args, **kwargs): @@ -132,10 +132,8 @@ class SearchListView(ListView): packages = parse_form(self.form, packages) sort = self.form.cleaned_data['sort'] if sort in self.allowed_sort: - packages = packages.order_by(sort) - else: - packages = packages.order_by('pkgname') - return packages + return packages.order_by(sort) + return packages.order_by('pkgname') # Form had errors so don't return any results return Package.objects.none() |