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

Commit 221d556

Browse files
committed
simplify sort options on apps devhub dashboard (bug 707826)
1 parent 3554669 commit 221d556

File tree

2 files changed

+23
-44
lines changed

2 files changed

+23
-44
lines changed

apps/devhub/tests/test_views.py

Lines changed: 16 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,7 @@ def test_assert_close_to_now(dt):
5959

6060

6161
class HubTest(amo.tests.TestCase):
62-
fixtures = ['browse/nameless-addon', 'base/users',
63-
'webapps/337141-steamcube']
62+
fixtures = ['browse/nameless-addon', 'base/users']
6463

6564
def setUp(self):
6665
self.url = reverse('devhub.index')
@@ -81,6 +80,10 @@ def clone_addon(self, num, addon_id=57132):
8180
return ids
8281

8382

83+
class AppHubTest(HubTest):
84+
fixtures = ['webapps/337141-steamcube', 'base/users']
85+
86+
8487
class TestHome(HubTest):
8588

8689
def test_addons(self):
@@ -96,10 +99,10 @@ def test_apps(self):
9699
self.assertTemplateUsed(r, 'devhub/addons/dashboard.html')
97100

98101

99-
class TestBreadcrumbs(HubTest):
102+
class TestAppBreadcrumbs(AppHubTest):
100103

101104
def setUp(self):
102-
super(TestBreadcrumbs, self).setUp()
105+
super(TestAppBreadcrumbs, self).setUp()
103106
waffle.models.Flag.objects.create(name='accept-webapps', everyone=True)
104107

105108
@mock.patch.object(settings, 'APP_PREVIEW', True)
@@ -321,7 +324,7 @@ def test_dev_news(self):
321324
eq_(doc('.blog-posts li a').eq(4).text(), "hi 4")
322325

323326

324-
class TestAppDashboard(HubTest):
327+
class TestAppDashboard(AppHubTest):
325328

326329
def setUp(self):
327330
super(TestAppDashboard, self).setUp()
@@ -345,7 +348,7 @@ def test_pagination(self):
345348
eq_(doc('.paginator').length, 0)
346349

347350

348-
class TestAppDashboardSorting(HubTest):
351+
class TestAppDashboardSorting(AppHubTest):
349352

350353
def setUp(self):
351354
super(TestAppDashboardSorting, self).setUp()
@@ -373,46 +376,16 @@ def test_pagination(self):
373376
eq_(doc('.paginator').length, 1)
374377

375378
def test_default_sort(self):
376-
test_default_sort(self, 'name', 'name', reverse=False,
377-
sel_class='extra-opt')
378-
379-
def test_free_sort(self):
380-
for app in test_listing_sort(self, 'free', 'weekly_downloads'):
381-
eq_(app.is_premium(), False)
382-
383-
def make_paid(self, apps):
384-
for idx, app in enumerate(apps):
385-
app.update(premium_type=amo.ADDON_PREMIUM)
386-
AddonPremium.objects.create(addon=app,
387-
price=Price.objects.create(price=idx))
388-
389-
def test_paid_sort(self):
390-
self.make_paid(self.my_apps.all()[:3])
391-
for app in test_listing_sort(self, 'paid', 'weekly_downloads'):
392-
eq_(app.is_premium(), True)
393-
394-
def test_price_sort(self):
395-
self.make_paid(self.my_apps.all()[:3])
396-
apps = test_listing_sort(self, 'price', None, reverse=False,
397-
sel_class='extra-opt')
398-
eq_(apps, list(self.my_apps.order_by('addonpremium__price__price')))
399-
400-
# Sort by PK if apps have the same price.
401-
price = Price.objects.all()[0]
402-
apps = test_listing_sort(self, 'price', None, reverse=False,
403-
sel_class='extra-opt')
404-
eq_(apps,
405-
list(self.my_apps.order_by('addonpremium__price__price', 'id')))
406-
407-
def test_rating_sort(self):
408-
test_listing_sort(self, 'rating', 'bayesian_rating')
379+
test_default_sort(self, 'name', 'name', reverse=False)
409380

410381
def test_newest_sort(self):
411-
test_listing_sort(self, 'created', 'created', sel_class='extra-opt')
382+
test_listing_sort(self, 'created', 'created')
383+
384+
def test_downloads_sort(self):
385+
test_listing_sort(self, 'downloads', 'weekly_downloads')
412386

413-
def test_name_sort(self):
414-
test_listing_sort(self, 'name', 'name', reverse=False,
415-
sel_class='extra-opt')
387+
def test_rating_sort(self):
388+
test_listing_sort(self, 'rating', 'bayesian_rating')
416389

417390

418391
class TestUpdateCompatibility(amo.tests.TestCase):

apps/devhub/views.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,6 @@
5858
from users.models import UserProfile
5959
from versions.models import Version
6060
from webapps.models import Webapp
61-
from webapps.views import AppFilter
6261
from zadmin.models import ValidationResult
6362

6463
from . import forms, tasks, feeds, signals
@@ -79,6 +78,13 @@ class AddonFilter(BaseFilter):
7978
('rating', _lazy(u'Rating')))
8079

8180

81+
class AppFilter(BaseFilter):
82+
opts = (('name', _lazy(u'Name')),
83+
('created', _lazy(u'Created')),
84+
('downloads', loc(u'Weekly Downloads')),
85+
('rating', _lazy(u'Rating')))
86+
87+
8288
def addon_listing(request, default='name', webapp=False):
8389
"""Set up the queryset and filtering for addon listing for Dashboard."""
8490
Filter = AppFilter if webapp else AddonFilter

0 commit comments

Comments
 (0)