Skip to content
This repository has been archived by the owner on Mar 15, 2018. It is now read-only.

Commit

Permalink
add download source for search suggestions
Browse files Browse the repository at this point in the history
  • Loading branch information
cvan committed Oct 21, 2011
1 parent 94a70b7 commit 1fbc738
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 6 deletions.
9 changes: 6 additions & 3 deletions apps/search/tests/test_views.py
Original file line number Diff line number Diff line change
Expand Up @@ -293,7 +293,7 @@ def setUpClass(cls):
cls.setUpIndex()

def search_addons(self, url, params, addons=[],
types=amo.ADDON_SEARCH_TYPES):
types=amo.ADDON_SEARCH_TYPES, src=None):
r = self.client.get('?'.join([url, params]))
eq_(r.status_code, 200)
data = json.loads(r.content)
Expand All @@ -305,7 +305,10 @@ def search_addons(self, url, params, addons=[],
for got, expected in zip(data, addons):
eq_(int(got['id']), expected.id)
eq_(got['name'], unicode(expected.name))
eq_(got['url'], expected.get_url_path())
expected_url = expected.get_url_path()
if src:
expected_url += '?src=ss'
eq_(got['url'], expected_url)
eq_(got['icon'], expected.icon_url)

assert expected.status in amo.REVIEWED_STATUSES, (
Expand Down Expand Up @@ -382,7 +385,7 @@ def setUp(self):
def search_addons(self, params, addons=[],
types=views.AddonSuggestionsAjax.types):
super(TestSearchSuggestions, self).search_addons(
self.url, params, addons, types)
self.url, params, addons, types, src='ss')

def search_applications(self, params, apps=[]):
r = self.client.get('?'.join([self.url, params]))
Expand Down
13 changes: 10 additions & 3 deletions apps/search/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -271,6 +271,7 @@ class BaseAjaxSearch(object):
def __init__(self, request, excluded_ids=[]):
self.request = request
self.excluded_ids = excluded_ids
self.src = getattr(self, 'src', None)
self.types = getattr(self, 'types', amo.ADDON_SEARCH_TYPES)
self.limit = 10
self.key = 'q' # Name of search field.
Expand Down Expand Up @@ -314,21 +315,27 @@ def build_list(self):
if callable(val):
val = val()
d[key] = unicode(val)
if self.src and 'url' in d:
d['url'] = urlparams(d['url'], src=self.src)
results.append(d)
return results


class AddonSuggestionsAjax(BaseAjaxSearch):
class SearchSuggestionsAjax(BaseAjaxSearch):
src = 'ss'


class AddonSuggestionsAjax(SearchSuggestionsAjax):
# No personas. No webapps.
types = [amo.ADDON_ANY, amo.ADDON_EXTENSION, amo.ADDON_THEME,
amo.ADDON_DICT, amo.ADDON_SEARCH, amo.ADDON_LPAPP]


class PersonaSuggestionsAjax(BaseAjaxSearch):
class PersonaSuggestionsAjax(SearchSuggestionsAjax):
types = [amo.ADDON_PERSONA]


class WebappSuggestionsAjax(BaseAjaxSearch):
class WebappSuggestionsAjax(SearchSuggestionsAjax):
types = [amo.ADDON_WEBAPP]


Expand Down
1 change: 1 addition & 0 deletions migrations/263-suggestions-source.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
INSERT INTO download_sources (name, type, created) VALUES ('ss', 'full', NOW());

0 comments on commit 1fbc738

Please sign in to comment.