Default to expiry_date for older software secure photo verifications

This commit is contained in:
Bianca Severino
2020-11-12 12:31:01 -05:00
parent 6424a3f3e8
commit e4366646f9
2 changed files with 26 additions and 0 deletions

View File

@@ -647,6 +647,13 @@ class SoftwareSecurePhotoVerification(PhotoVerification):
# to notify for expired verification is already sent.
expiry_email_date = models.DateTimeField(null=True, blank=True, db_index=True)
@property
def expiration_datetime(self):
"""Use expiry_date for older entries if it still exists."""
if self.expiry_date:
return self.expiry_date
return super(SoftwareSecurePhotoVerification, self).expiration_datetime
@classmethod
def get_initial_verification(cls, user, earliest_allowed_date=None):
"""Get initial verification for a user with the 'photo_id_key'.

View File

@@ -396,6 +396,25 @@ class TestPhotoVerification(TestVerificationBase, MockS3BotoMixin, ModuleStoreTe
verification.created_at + timedelta(days=FAKE_SETTINGS["DAYS_GOOD_FOR"])
)
def test_deprecated_expiry_date(self):
"""
Test `expiration_datetime` returns `expiry_date` if it is not null.
"""
user = UserFactory.create()
with freeze_time(now()):
verification = SoftwareSecurePhotoVerification(user=user)
# First, assert that expiration_date is set correctly
self.assertEqual(
verification.expiration_datetime,
now() + timedelta(days=FAKE_SETTINGS["DAYS_GOOD_FOR"])
)
verification.expiry_date = now() + timedelta(days=10)
# Then, assert that expiration_datetime favors expiry_date's value if set
self.assertEqual(
verification.expiration_datetime,
now() + timedelta(days=10)
)
class SSOVerificationTest(TestVerificationBase):
"""