def test_results_downloads(self): for sort in ('', 'downloads', 'created'): r = self.client.get(urlparams(self.url, sort=sort)) dls = pq(r.content)('.item .downloads') eq_(dls.text().split()[0], numberfmt(self.webapp.weekly_downloads), 'Missing downloads for %s' % sort)
def check_followers_count(self, sort, column): # Checks that we show the correct type/number of followers. r = self.client.get(urlparams(self.url, sort=sort)) items = pq(r.content)('.primary .item') for idx, c in enumerate(r.context['pager'].object_list): eq_(items.eq(idx).find('.followers').text().split()[0], numberfmt(getattr(c, column)))
def test_review_link(self): # We have reviews. self.enable_waffle() r = self.client.get(self.detail) rating = int(round(self.webapp.average_rating)) total = numberfmt(self.webapp.total_reviews) eq_(pq(r.content)('.average-rating').text(), 'Rated %s out of 5 stars %s reviews' % (rating, total))
def test_downloads(self): doc = pq(self.client.get(self.url).content)('table') eq_(doc('.adu').length, 0) eq_(doc('.downloads td').text(), numberfmt(self.webapp.weekly_downloads)) self.webapp.update(weekly_downloads=0) doc = pq(self.client.get(self.url).content)('table') eq_(doc('.downloads').length, 0)
def test_users_adu_unit(self): doc = pq(self.client.get(urlparams(self.url, sort='users')).content) for item in doc('.items .item'): item = pq(item) addon_id = item('.install').attr('data-addon') adu = Addon.objects.get(id=addon_id).average_daily_users eq_(item('.adu').text(), '%s user%s' % (numberfmt(adu), 's' if adu != 1 else ''))
def test_review_link_plural(self): # We have reviews. self.enable_waffle() self.webapp.update(total_reviews=2) r = self.client.get(self.detail) total = numberfmt(self.webapp.total_reviews) eq_(pq(r.content)('.average-rating').text(), 'Rated 4 out of 5 stars 2 reviews')
def test_review_link(self): # We have reviews. self.enable_waffle() r = self.client.get(self.detail) rating = int(round(self.webapp.average_rating)) total = numberfmt(self.webapp.total_reviews) eq_( pq(r.content)('.average-rating').text(), 'Rated %s out of 5 stars %s reviews' % (rating, total))
def test_popular_adu_unit(self): doc = pq(self.client.get(urlparams(self.url, sort='popular')).content) for item in doc('.items .item'): item = pq(item) addon_id = item('.install').attr('data-addon') adu = Addon.objects.get(id=addon_id).weekly_downloads eq_(item('.adu').text(), '%s weekly download%s' % (numberfmt(adu), 's' if adu != 1 else ''))
def test_paid(self): r = self.client.get(self.url) eq_(r.status_code, 200) doc = pq(r.content) eq_(list(r.context['paid']), self.paid) for idx, element in enumerate(doc('#top-paid .item')): item = pq(element) webapp = self.paid[idx] eq_(item.find('.price').text(), webapp.premium.get_price_locale()) eq_(item.find('.downloads').split()[0], numberfmt(webapp.weekly_downloads))
def test_downloads_stats_public(self): self.addon.update(public_stats=True, type=amo.ADDON_SEARCH) eq_(self.addon.show_adu(), False) dls = self.get_pq()('#weekly-downloads') # Check formatted count. eq_(dls.text().split()[0], numberfmt(self.addon.weekly_downloads)) # Check if we hide link when there are no weekly downloads. self.addon.update(weekly_downloads=0) eq_(self.get_pq()('#weekly-downloads').length, 0)
def test_adu_stats_public(self): self.addon.update(public_stats=True) eq_(self.addon.show_adu(), True) adu = self.get_pq()('#daily-users') # Check formatted count. eq_(adu.text().split()[0], numberfmt(self.addon.average_daily_users)) # Check if we hide link when there are no ADU. self.addon.update(average_daily_users=0) eq_(self.get_pq()('#daily-users').length, 0)
def test_free(self): r = self.client.get(self.url) eq_(r.status_code, 200) doc = pq(r.content) eq_(list(r.context['free']), self.free) for idx, element in enumerate(doc('#top-free .item')): item = pq(element) webapp = self.free[idx] eq_(item.find('.price').text(), 'FREE') eq_(item.find('.downloads').split()[0], numberfmt(webapp.weekly_downloads))
def test_upsell(self): eq_(self.get_pq()('#upsell').length, 0) premie = amo.tests.app_factory(manifest_url='http://omg.org/yes') AddonUpsell.objects.create(free=self.webapp, premium=premie, text='XXX') upsell = self.get_pq()('#upsell') eq_(upsell.length, 1) eq_(upsell.find('.upsell').find('.name').text(), unicode(premie.name)) eq_(upsell.find('.icon').attr('src'), premie.get_icon_url(64)) eq_(upsell.find('.special').attr('href'), premie.get_url_path() + '?src=mkt-detail-upsell') eq_(upsell.find('.price').text(), premie.get_price()) eq_(upsell.find('.downloads').text().split(' ')[0], numberfmt(premie.weekly_downloads)) eq_(upsell.find('.prose').text(), 'XXX')
def test_extension_adu(self): doc = pq(self.client.get(self.url).content)('table') eq_(doc('.adu td').text(), numberfmt(self.ext.average_daily_users)) self.ext.update(average_daily_users=0) doc = pq(self.client.get(self.url).content)('table') eq_(doc('.adu').length, 0)
def test_listing_downloads(self): r, doc = self.get_res() dls = doc('.item').find('details .vital.downloads') eq_(dls.text().split()[0], numberfmt(self.webapp.weekly_downloads))
def test_downloads(self): dls = self.get_pq()('#weekly-downloads') eq_(dls.find('a').length, 0) eq_(dls.text().split()[0], numberfmt(self.webapp.weekly_downloads)) self.webapp.update(weekly_downloads=0) eq_(self.get_pq()('#weekly-downloads').length, 0)
def weekly_downloads(product): cnt = product.weekly_downloads return ngettext('{0} weekly download', '{0} weekly downloads', cnt).format(numberfmt(cnt))
def test_mobile_results_downloads(self): for sort in ('', 'downloads', 'rating', 'created'): r = self.client.get(urlparams(self.url, sort=sort)) dls = pq(r.content)('#content .item .vital.downloads') eq_(dls.text().split()[0], numberfmt(self.webapp.weekly_downloads))