allow reverification for pending status ('must_retry', 'submitted')

This commit is contained in:
Afeef Janjua
2015-11-04 18:55:57 +05:00
parent f475200a16
commit ed6e46453c
3 changed files with 17 additions and 4 deletions

View File

@@ -255,3 +255,4 @@ Douglas Hall <dhall@edx.org>
Awais Jibran <awaisdar001@gmail.com>
Muhammad Rehan <muhammadrehan69@gmail.com>
Shawn Milochik <shawn@milochik.com>
Afeef Janjua <janjua.afeef@gmail.com>

View File

@@ -1870,14 +1870,22 @@ class TestReverifyView(TestCase):
# Allow the student to reverify
self._assert_can_reverify()
def test_reverify_view_cannot_reverify_pending(self):
def test_reverify_view_can_reverify_pending(self):
""" Test that the user can still re-verify even if the previous photo
verification is in pending state.
A photo verification is considered in pending state when the user has
either submitted the photo verification (status in database: 'submitted')
or photo verification submission failed (status in database: 'must_retry').
"""
# User has submitted a verification attempt, but Software Secure has not yet responded
attempt = SoftwareSecurePhotoVerification.objects.create(user=self.user)
attempt.mark_ready()
attempt.submit()
# Cannot reverify because an attempt has already been submitted.
self._assert_cannot_reverify()
# Can re-verify because an attempt has already been submitted.
self._assert_can_reverify()
def test_reverify_view_cannot_reverify_approved(self):
# Submitted attempt has been approved

View File

@@ -1350,7 +1350,11 @@ class ReverifyView(View):
Backbone views used in the initial verification flow.
"""
status, _ = SoftwareSecurePhotoVerification.user_status(request.user)
if status in ["must_reverify", "expired"]:
# If the verification process is still ongoing i.e. the status for photo
# verification is either 'submitted' or 'must_retry' then its marked as
# 'pending'
if status in ["must_reverify", "expired", "pending"]:
context = {
"user_full_name": request.user.profile.name,
"platform_name": settings.PLATFORM_NAME,