Commit ed6e4645 by Afeef Janjua

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

parent f475200a
...@@ -255,3 +255,4 @@ Douglas Hall <dhall@edx.org> ...@@ -255,3 +255,4 @@ Douglas Hall <dhall@edx.org>
Awais Jibran <awaisdar001@gmail.com> Awais Jibran <awaisdar001@gmail.com>
Muhammad Rehan <muhammadrehan69@gmail.com> Muhammad Rehan <muhammadrehan69@gmail.com>
Shawn Milochik <shawn@milochik.com> Shawn Milochik <shawn@milochik.com>
Afeef Janjua <janjua.afeef@gmail.com>
...@@ -1870,14 +1870,22 @@ class TestReverifyView(TestCase): ...@@ -1870,14 +1870,22 @@ class TestReverifyView(TestCase):
# Allow the student to reverify # Allow the student to reverify
self._assert_can_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 # User has submitted a verification attempt, but Software Secure has not yet responded
attempt = SoftwareSecurePhotoVerification.objects.create(user=self.user) attempt = SoftwareSecurePhotoVerification.objects.create(user=self.user)
attempt.mark_ready() attempt.mark_ready()
attempt.submit() attempt.submit()
# Cannot reverify because an attempt has already been submitted. # Can re-verify because an attempt has already been submitted.
self._assert_cannot_reverify() self._assert_can_reverify()
def test_reverify_view_cannot_reverify_approved(self): def test_reverify_view_cannot_reverify_approved(self):
# Submitted attempt has been approved # Submitted attempt has been approved
......
...@@ -1350,7 +1350,11 @@ class ReverifyView(View): ...@@ -1350,7 +1350,11 @@ class ReverifyView(View):
Backbone views used in the initial verification flow. Backbone views used in the initial verification flow.
""" """
status, _ = SoftwareSecurePhotoVerification.user_status(request.user) 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 = { context = {
"user_full_name": request.user.profile.name, "user_full_name": request.user.profile.name,
"platform_name": settings.PLATFORM_NAME, "platform_name": settings.PLATFORM_NAME,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment