summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjelle van der Waa <jelle@vdwaa.nl>2019-02-09 22:26:17 +0100
committerGitHub <noreply@github.com>2019-02-09 22:26:17 +0100
commit1abcd3c8172cf87da1548f29e28f1adbc7d41c18 (patch)
tree6adee25a592c71625099aae13e3ac04f0dd5272f
parentac6be4410c22f5337b084f2855f49f48eccac1e6 (diff)
parent2f10c1cc150f419946679782d1950b6500cea98c (diff)
downloadarchweb-1abcd3c8172cf87da1548f29e28f1adbc7d41c18.tar.gz
archweb-1abcd3c8172cf87da1548f29e28f1adbc7d41c18.zip
Merge pull request #191 from jelly/test_fixes
Test fixes
-rw-r--r--packages/tests.py14
-rw-r--r--packages/views/__init__.py34
-rw-r--r--packages/views/search.py8
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()