summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAngel Velásquez <angvp@archlinux.org>2017-11-26 19:17:42 -0500
committerGitHub <noreply@github.com>2017-11-26 19:17:42 -0500
commit6363af204c6f0d62e099f23da2b8a042704f10f9 (patch)
treef1c78dad298ac9437d38a68dddbd52c4f6b3d719
parentd753449a390120851feeeacb20410be9d8aab2f7 (diff)
parent534e5dfa06c1d23397fd87cbef84e3b733c3acbf (diff)
downloadarchweb-6363af204c6f0d62e099f23da2b8a042704f10f9.tar.gz
archweb-6363af204c6f0d62e099f23da2b8a042704f10f9.zip
Merge pull request #68 from jelly/test_search
packages: Add tests for json and normal package search
-rw-r--r--packages/tests.py88
1 files changed, 88 insertions, 0 deletions
diff --git a/packages/tests.py b/packages/tests.py
index e7230e95..09fe1dc8 100644
--- a/packages/tests.py
+++ b/packages/tests.py
@@ -1,3 +1,4 @@
+import json
import unittest
from django.test import TestCase
@@ -57,4 +58,91 @@ class PackagesTest(TestCase):
self.assertEqual(response.status_code, 200)
+class PackageSearchJson(TestCase):
+ fixtures = ['main/fixtures/arches.json', 'main/fixtures/repos.json',
+ 'main/fixtures/package.json']
+
+
+ def test_invalid(self):
+ response = self.client.get('/packages/search/json/')
+ self.assertEqual(response.status_code, 200)
+ data = json.loads(response.content)
+ self.assertEqual(data['limit'], 250)
+ self.assertEqual(data['results'], [])
+ self.assertEqual(data['valid'], False)
+
+ def test_packagename(self):
+ response = self.client.get('/packages/search/json/?repository=core')
+ self.assertEqual(response.status_code, 200)
+ data = json.loads(response.content)
+ self.assertEqual(len(data['results']), 1)
+ self.assertEqual(data['results'][0]['pkgname'], 'linux')
+
+ def test_packagename(self):
+ response = self.client.get('/packages/search/json/?name=linux')
+ self.assertEqual(response.status_code, 200)
+ data = json.loads(response.content)
+ self.assertEqual(len(data['results']), 1)
+
+ def test_no_results(self):
+ response = self.client.get('/packages/search/json/?name=none')
+ self.assertEqual(response.status_code, 200)
+ data = json.loads(response.content)
+ self.assertEqual(len(data['results']), 0)
+
+
+class PackageSearch(TestCase):
+ fixtures = ['main/fixtures/arches.json', 'main/fixtures/repos.json',
+ 'main/fixtures/package.json']
+
+ def test_invalid(self):
+ response = self.client.get('/packages/?q=test')
+ self.assertEqual(response.status_code, 200)
+ self.assertIn('0 matching packages found', response.content)
+
+ def test_exact_match(self):
+ response = self.client.get('/packages/?q=linux')
+ self.assertEqual(response.status_code, 200)
+ self.assertIn('1 matching package found', response.content)
+
+ def test_filter_name(self):
+ response = self.client.get('/packages/?name=name')
+ self.assertEqual(response.status_code, 200)
+ self.assertIn('0 matching packages found', response.content)
+
+ def test_filter_repo(self):
+ response = self.client.get('/packages/?repo=Core')
+ self.assertEqual(response.status_code, 200)
+ self.assertIn('1 matching package found', response.content)
+
+ def test_filter_desc(self):
+ response = self.client.get('/packages/?desc=kernel')
+ self.assertEqual(response.status_code, 200)
+ self.assertIn('1 matching package found', response.content)
+
+ def test_filter_flagged(self):
+ response = self.client.get('/packages/?flagged=Flagged')
+ self.assertEqual(response.status_code, 200)
+ self.assertIn('0 matching packages found', response.content)
+
+ def test_filter_not_flagged(self):
+ response = self.client.get('/packages/?flagged=Not Flagged')
+ self.assertEqual(response.status_code, 200)
+ self.assertIn('1 matching package found', response.content)
+
+ def test_filter_arch(self):
+ response = self.client.get('/packages/?arch=any')
+ self.assertEqual(response.status_code, 200)
+ self.assertIn('0 matching packages found', response.content)
+
+ def test_filter_maintainer_orphan(self):
+ response = self.client.get('/packages/?maintainer=orphan')
+ self.assertEqual(response.status_code, 200)
+ self.assertIn('1 matching package found', response.content)
+
+ def test_filter_packager_unknown(self):
+ response = self.client.get('/packages/?packager=unknown')
+ self.assertEqual(response.status_code, 200)
+ self.assertIn('1 matching package found', response.content)
+
# vim: set ts=4 sw=4 et: