diff options
author | Jelle van der Waa <jelle@vdwaa.nl> | 2017-11-26 17:50:39 +0100 |
---|---|---|
committer | Jelle van der Waa <jelle@vdwaa.nl> | 2017-11-26 17:51:52 +0100 |
commit | 534e5dfa06c1d23397fd87cbef84e3b733c3acbf (patch) | |
tree | f1c78dad298ac9437d38a68dddbd52c4f6b3d719 /packages | |
parent | d753449a390120851feeeacb20410be9d8aab2f7 (diff) | |
download | archweb-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.py | 88 |
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: |