diff --git a/src/olympia/abuse/tests/test_models.py b/src/olympia/abuse/tests/test_models.py index 68ff5f968e98..6dcde087b259 100644 --- a/src/olympia/abuse/tests/test_models.py +++ b/src/olympia/abuse/tests/test_models.py @@ -1,6 +1,6 @@ import json import uuid -from datetime import datetime +from datetime import datetime, timedelta from unittest import mock from django.conf import settings @@ -2835,6 +2835,42 @@ def test_execute_action_reject_version_delayed_rejection(self): assert 'some review text' in mail.outbox[0].body assert '14 day(s)' in mail.outbox[0].body + def test_execute_action_change_pending_rejection_date(self): + addon = addon_factory(users=[user_factory(email='author@example.com')]) + old_pending_rejection = self.days_ago(1) + new_pending_rejection = datetime.now() + timedelta(days=1) + version_review_flags_factory( + version=addon.current_version, + pending_rejection=old_pending_rejection, + pending_rejection_by=user_factory(), + pending_content_rejection=False, + ) + decision = ContentDecision.objects.create( + addon=addon, + action=DECISION_ACTIONS.AMO_CHANGE_PENDING_REJECTION_DATE, + action_date=datetime.now(), + ) + ActivityLog.objects.create( + amo.LOG.CHANGE_PENDING_REJECTION, + addon, + addon.current_version, + decision, + details={ + 'old_deadline': str(old_pending_rejection), + 'new_deadline': str(new_pending_rejection), + }, + user=user_factory(), + ) + decision.execute_action_and_notify() + assert ( + 'previous correspondence indicated that you would be required ' + f'to correct the violation(s) by {old_pending_rejection}' + ) in mail.outbox[0].body + assert ( + 'now require you to correct your add-on violations no later ' + f'than {new_pending_rejection}' + ) in mail.outbox[0].body + def test_resolve_job_forwarded(self): addon_developer = user_factory() addon = addon_factory(users=[addon_developer]) diff --git a/src/olympia/reviewers/tests/test_forms.py b/src/olympia/reviewers/tests/test_forms.py index 37c34781ac1e..e055858dd404 100644 --- a/src/olympia/reviewers/tests/test_forms.py +++ b/src/olympia/reviewers/tests/test_forms.py @@ -1092,9 +1092,7 @@ def test_delayable_action_missing_fields(self): } form = self.get_form(data=data) assert not form.is_valid() - assert form.errors['delayed_rejection'] == [ - 'This field is required.' - ] + assert form.errors['delayed_rejection'] == ['This field is required.'] # 'False' or '' works, we just want to ensure the field was submitted. form = self.get_form(data=data) @@ -1109,9 +1107,7 @@ def test_delayable_action_missing_fields(self): data['delayed_rejection_date'] = '' form = self.get_form(data=data) assert not form.is_valid() - assert form.errors['delayed_rejection_date'] == [ - 'This field is required.' - ] + assert form.errors['delayed_rejection_date'] == ['This field is required.'] def test_version_pk(self): self.grant_permission(self.request.user, 'Addons:Review') diff --git a/src/olympia/reviewers/tests/test_views.py b/src/olympia/reviewers/tests/test_views.py index 63dcdca5d32a..8f3c2fa74890 100644 --- a/src/olympia/reviewers/tests/test_views.py +++ b/src/olympia/reviewers/tests/test_views.py @@ -4613,8 +4613,7 @@ def test_reject_multiple_versions_with_delay(self): self.grant_permission(self.reviewer, 'Addons:Review,Reviews:Admin') in_the_future = datetime.now() + timedelta( - days=REVIEWER_DELAYED_REJECTION_PERIOD_DAYS_DEFAULT, - hours=1 + days=REVIEWER_DELAYED_REJECTION_PERIOD_DAYS_DEFAULT, hours=1 ) response = self.client.post( @@ -5252,12 +5251,23 @@ def test_test_data_value_attributes_admin(self): assert doc('.data-toggle.review-actions-reasons')[0].attrib['data-value'].split( ' ' - ) == ['reject_multiple_versions', 'reply', 'disable_addon',] + ) == [ + 'reject_multiple_versions', + 'reply', + 'disable_addon', + ] - assert doc('.data-toggle.review-files')[0].attrib['data-value'] == 'disable_addon' - assert doc('.data-toggle.review-tested')[0].attrib['data-value'] == 'disable_addon' + assert ( + doc('.data-toggle.review-files')[0].attrib['data-value'] == 'disable_addon' + ) + assert ( + doc('.data-toggle.review-tested')[0].attrib['data-value'] == 'disable_addon' + ) # Admins can use delayed rejections - assert doc('.data-toggle.review-delayed-rejection')[0].attrib['data-value'] == 'reject_multiple_versions change_pending_rejection_multiple_versions' + assert ( + doc('.data-toggle.review-delayed-rejection')[0].attrib['data-value'] + == 'reject_multiple_versions change_pending_rejection_multiple_versions' + ) def test_data_value_attributes_unlisted(self): self.version.update(channel=amo.CHANNEL_UNLISTED)