Skip to content

Commit

Permalink
Merge pull request #387 from davidbgk/1022895-rejected-in-update-queue2
Browse files Browse the repository at this point in the history
Exclude all rejected themes on rereview (bug 1022895)
  • Loading branch information
davidbgk committed Dec 22, 2014
2 parents fd632ef + 9b5274b commit d94f2c9
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 28 deletions.
47 changes: 27 additions & 20 deletions apps/editors/tests/test_views_themes.py
Expand Up @@ -497,15 +497,15 @@ def test_soft_deleted_addon(self):
for the last 6 months! #liberation
"""
# Normal RQT object.
RereviewQueueTheme.objects.create(
theme=addon_factory(type=amo.ADDON_PERSONA).persona, header='',
footer='')
theme = addon_factory(type=amo.ADDON_PERSONA)
RereviewQueueTheme.objects.create(header='', footer='',
theme=theme.persona)

# Deleted add-on RQT object.
addon = addon_factory(type=amo.ADDON_PERSONA)
RereviewQueueTheme.objects.create(theme=addon.persona, header='',
footer='')
addon.delete()
theme = addon_factory(type=amo.ADDON_PERSONA)
RereviewQueueTheme.objects.create(header='', footer='',
theme=theme.persona)
theme.delete()

self.login('senior_persona_reviewer@mozilla.com')
r = self.client.get(self.queue_url)
Expand All @@ -514,24 +514,31 @@ def test_soft_deleted_addon(self):
eq_(doc('.theme').length, 1)
eq_(RereviewQueueTheme.with_deleted.count(), 2)

def test_rejected_addon(self):
"""Test rejected addons are not displayed in review lists."""
# Normal RQT object.
RereviewQueueTheme.objects.create(
theme=addon_factory(type=amo.ADDON_PERSONA).persona, header='',
footer='')

# Rejected add-on RQT object.
addon = addon_factory(type=amo.ADDON_PERSONA,
status=amo.STATUS_REJECTED)
RereviewQueueTheme.objects.create(theme=addon.persona, header='',
footer='')

def test_rejected_addon_in_rqt(self):
"""Test rejected addons in RQT are not displayed in review lists."""
self.theme_factory(status=amo.STATUS_PUBLIC)
self.theme_factory(status=amo.STATUS_REJECTED)
self.login('senior_persona_reviewer@mozilla.com')
r = self.client.get(self.queue_url)
eq_(r.status_code, 200)
eq_(pq(r.content)('.theme').length, 1)

def test_rejected_addon_in_locks(self):
"""Test rejected addons in locks are not displayed in review lists."""
reviewer = UserProfile.objects.get(
email='persona_reviewer@mozilla.com')
# Either public or rejected locked themes should not showing up.
public_theme = self.theme_factory(status=amo.STATUS_PUBLIC)
ThemeLock.objects.create(reviewer=reviewer, expiry=self.days_ago(-1),
theme=public_theme.persona)
rejected_theme = self.theme_factory(status=amo.STATUS_REJECTED)
ThemeLock.objects.create(reviewer=reviewer, expiry=self.days_ago(-1),
theme=rejected_theme.persona)
self.login('senior_persona_reviewer@mozilla.com')
r = self.client.get(self.queue_url)
eq_(r.status_code, 200)
eq_(pq(r.content)('.theme').length, 0)

@mock.patch('editors.tasks.send_mail_jinja')
@mock.patch('editors.tasks.copy_stored_file')
@mock.patch('editors.tasks.create_persona_preview_images')
Expand Down
18 changes: 10 additions & 8 deletions apps/editors/views_themes.py
Expand Up @@ -160,9 +160,8 @@ def _get_themes(request, reviewer, flagged=False, rereview=False):
themes = list(themes)[:num]
expiry = get_updated_expiry()
for theme in themes:
if rereview:
theme = theme.theme
ThemeLock.objects.create(theme=theme, reviewer=reviewer, expiry=expiry)
ThemeLock.objects.create(theme=_rereview_to_theme(rereview, theme),
reviewer=reviewer, expiry=expiry)

# Empty pool? Go look for some expired locks.
if not themes:
Expand All @@ -178,7 +177,7 @@ def _get_themes(request, reviewer, flagged=False, rereview=False):
locks = expired_locks

if rereview:
return (RereviewQueueTheme.objects
return (RereviewQueueTheme.objects.no_cache()
.filter(theme__themelock__reviewer=reviewer)
.exclude(theme__addon__status=amo.STATUS_REJECTED))

Expand Down Expand Up @@ -284,15 +283,18 @@ def _calc_num_themes_checkout(locks):

def _get_rereview_themes(reviewer):
"""Check out re-uploaded themes."""
locks = ThemeLock.objects.select_related().filter(
reviewer=reviewer, theme__rereviewqueuetheme__isnull=False)
locks = (ThemeLock.objects.select_related().no_cache()
.filter(reviewer=reviewer,
theme__rereviewqueuetheme__isnull=False)
.exclude(theme__addon__status=amo.STATUS_REJECTED))

num, updated_locks = _calc_num_themes_checkout(locks)
if updated_locks:
locks = updated_locks

themes = RereviewQueueTheme.objects.filter(theme__addon__isnull=False,
theme__themelock=None)
themes = (RereviewQueueTheme.objects.no_cache()
.filter(theme__addon__isnull=False, theme__themelock=None)
.exclude(theme__addon__status=amo.STATUS_REJECTED))
return num, themes, locks


Expand Down

0 comments on commit d94f2c9

Please sign in to comment.