diff options
author | Angel Velásquez <angvp@archlinux.org> | 2017-11-26 19:17:42 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-11-26 19:17:42 -0500 |
commit | 6363af204c6f0d62e099f23da2b8a042704f10f9 (patch) | |
tree | f1c78dad298ac9437d38a68dddbd52c4f6b3d719 | |
parent | d753449a390120851feeeacb20410be9d8aab2f7 (diff) | |
parent | 534e5dfa06c1d23397fd87cbef84e3b733c3acbf (diff) | |
download | archweb-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.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: |