summaryrefslogtreecommitdiffstats
path: root/packages
diff options
context:
space:
mode:
authorJelle van der Waa <jelle@vdwaa.nl>2017-11-26 17:50:39 +0100
committerJelle van der Waa <jelle@vdwaa.nl>2017-11-26 17:51:52 +0100
commit534e5dfa06c1d23397fd87cbef84e3b733c3acbf (patch)
treef1c78dad298ac9437d38a68dddbd52c4f6b3d719 /packages
parentd753449a390120851feeeacb20410be9d8aab2f7 (diff)
downloadarchweb-534e5dfa06c1d23397fd87cbef84e3b733c3acbf.tar.gz
archweb-534e5dfa06c1d23397fd87cbef84e3b733c3acbf.zip
packages: Add tests for json and normal package search
Test all known scenario's and easy to test search scenario's.
Diffstat (limited to 'packages')
-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: