def search_applications(self, params, apps=[]): r = self.client.get(self.url + '?' + params) eq_(r.status_code, 200) data = json.loads(r.content) data = sorted(data, key=lambda x: x['id']) apps = sorted(apps, key=lambda x: x.id) eq_(len(data), len(apps)) for got, expected in zip(data, apps): eq_(int(got['id']), expected.id) eq_(got['name'], '%s Add-ons' % unicode(expected.pretty)) eq_(got['url'], locale_url(expected.short)) eq_(got['cls'], 'app ' + expected.short)
def search_applications(self, params, apps=[]): r = self.client.get(self.url + '?' + params) assert r.status_code == 200 data = json.loads(r.content) data = sorted(data, key=lambda x: x['id']) apps = sorted(apps, key=lambda x: x.id) assert len(data) == len(apps) for got, expected in zip(data, apps): assert int(got['id']) == expected.id assert got['name'] == '%s Add-ons' % unicode(expected.pretty) assert got['url'] == locale_url(expected.short) assert got['cls'] == 'app ' + expected.short
def _build_suggestions(request, cat, suggester): results = [] q = request.GET.get('q') if q and (q.isdigit() or len(q) > 2): q_ = q.lower() if cat != 'apps': # Applications. for a in amo.APP_USAGE: name_ = unicode(a.pretty).lower() word_matches = [w for w in q_.split() if name_ in w] if q_ in name_ or word_matches: results.append({ 'id': a.id, 'name': ugettext(u'{0} Add-ons').format(a.pretty), 'url': locale_url(a.short), 'cls': 'app ' + a.short }) # Categories. cats = Category.objects cats = cats.filter( Q(application=request.APP.id) | Q(type=amo.ADDON_SEARCH)) if cat == 'themes': cats = cats.filter(type=amo.ADDON_PERSONA) else: cats = cats.exclude(type=amo.ADDON_PERSONA) for c in cats: if not c.name: continue name_ = unicode(c.name).lower() word_matches = [w for w in q_.split() if name_ in w] if q_ in name_ or word_matches: results.append({ 'id': c.id, 'name': unicode(c.name), 'url': c.get_url_path(), 'cls': 'cat' }) results += suggester.items return results
def _build_suggestions(request, cat, suggester): results = [] q = request.GET.get('q') if q and (q.isdigit() or len(q) > 2): q_ = q.lower() if cat != 'apps': # Applications. for a in amo.APP_USAGE: name_ = unicode(a.pretty).lower() word_matches = [w for w in q_.split() if name_ in w] if q_ in name_ or word_matches: results.append({ 'id': a.id, 'name': _(u'{0} Add-ons').format(a.pretty), 'url': locale_url(a.short), 'cls': 'app ' + a.short }) # Categories. cats = Category.objects cats = cats.filter(Q(application=request.APP.id) | Q(type=amo.ADDON_SEARCH)) if cat == 'themes': cats = cats.filter(type=amo.ADDON_PERSONA) else: cats = cats.exclude(type=amo.ADDON_PERSONA) for c in cats: if not c.name: continue name_ = unicode(c.name).lower() word_matches = [w for w in q_.split() if name_ in w] if q_ in name_ or word_matches: results.append({ 'id': c.id, 'name': unicode(c.name), 'url': c.get_url_path(), 'cls': 'cat' }) results += suggester.items return results