--- distro_tracker/core/static/js/main.js | 10 ++++++++++ distro_tracker/core/tests/tests_views.py | 31 ++++++++++++++++++++++++++++++- distro_tracker/core/views.py | 3 ++- 3 files changed, 42 insertions(+), 2 deletions(-)
diff --git a/distro_tracker/core/static/js/main.js b/distro_tracker/core/static/js/main.js index 3eee6aa17eb4..454b2b73ac8e 100644 --- a/distro_tracker/core/static/js/main.js +++ b/distro_tracker/core/static/js/main.js @@ -24,6 +24,16 @@ $(function() { rateLimitWait: 500 }, { + name: 'binary-packages', + remote: { + url: '/api/package/search/autocomplete?q=%QUERY&package_type=binary', + filter: function(r) { return r[1]; } + }, + header: '<h5 class="text-center typeahead-package-title">Binary packages</h5>', + // Use a slightly larger delay between requests than the default + rateLimitWait: 500 + }, + { name: 'pseudo-packages', remote: { url: '/api/package/search/autocomplete?q=%QUERY&package_type=pseudo', diff --git a/distro_tracker/core/tests/tests_views.py b/distro_tracker/core/tests/tests_views.py index 9d8db7c92d1c..5a1447caf43e 100644 --- a/distro_tracker/core/tests/tests_views.py +++ b/distro_tracker/core/tests/tests_views.py @@ -265,6 +265,8 @@ class PackageAutocompleteViewTest(TestCase): SourcePackageName.objects.create(name='package') PseudoPackageName.objects.create(name='pseudo-package') PseudoPackageName.objects.create(name='zzz') + BinaryPackageName.objects.create(name='package-dev') + BinaryPackageName.objects.create(name='libpackage') PackageName.objects.create(name='ppp') def test_source_package_autocomplete(self): @@ -294,6 +296,32 @@ class PackageAutocompleteViewTest(TestCase): self.assertEqual(response[0], 'z') self.assertEqual(len(response[1]), 0) + def test_binary_package_autocomplete(self): + """ + Tests the autocomplete functionality when the client asks for binary + packages. + """ + response = self.client.get(reverse('dtracker-api-package-autocomplete'), { + 'package_type': 'binary', + 'q': 'p', + }) + + response = json.loads(response.content.decode('utf-8')) + self.assertEqual(len(response), 2) + self.assertEqual(response[0], 'p') + self.assertEqual(len(response[1]), 1) + self.assertIn('package-dev', response[1]) + + # No packages given when there are no matching source packages + response = self.client.get(reverse('dtracker-api-package-autocomplete'), { + 'package_type': 'binary', + 'q': 'z', + }) + response = json.loads(response.content.decode('utf-8')) + self.assertEqual(len(response), 2) + self.assertEqual(response[0], 'z') + self.assertEqual(len(response[1]), 0) + def test_pseudo_package_autocomplete(self): """ Tests the autocomplete functionality when the client asks for pseudo @@ -332,8 +360,9 @@ class PackageAutocompleteViewTest(TestCase): response = json.loads(response.content.decode('utf-8')) self.assertEqual(len(response), 2) self.assertEqual(response[0], 'p') - self.assertEqual(len(response[1]), 2) + self.assertEqual(len(response[1]), 3) self.assertIn('package', response[1]) + self.assertIn('package-dev', response[1]) self.assertIn('pseudo-package', response[1]) # No packages given when there are no matching packages diff --git a/distro_tracker/core/views.py b/distro_tracker/core/views.py index 5b8ae84a3245..4876575792f0 100644 --- a/distro_tracker/core/views.py +++ b/distro_tracker/core/views.py @@ -29,7 +29,7 @@ from distro_tracker.core.models import get_web_package from distro_tracker.core.forms import CreateTeamForm from distro_tracker.core.forms import AddTeamMemberForm from distro_tracker.core.utils import render_to_json_response -from distro_tracker.core.models import SourcePackageName, PackageName, PseudoPackageName +from distro_tracker.core.models import SourcePackageName, PackageName, PseudoPackageName, BinaryPackageName from distro_tracker.core.models import ActionItem from distro_tracker.core.models import EmailSettings from distro_tracker.core.models import News, NewsRenderer @@ -136,6 +136,7 @@ class PackageAutocompleteView(View): MANAGERS = { 'pseudo': PseudoPackageName.objects, 'source': SourcePackageName.objects, + 'binary': BinaryPackageName.objects, } # When no package type is given include both pseudo and source packages filtered = MANAGERS.get( -- 2.0.1 -- To UNSUBSCRIBE, email to debian-qa-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/1405604299-11862-5-git-send-email-ber...@debian.org