diff --git a/edx_name_affirmation/models.py b/edx_name_affirmation/models.py index bd61db7..08e109b 100644 --- a/edx_name_affirmation/models.py +++ b/edx_name_affirmation/models.py @@ -60,7 +60,7 @@ def verification_attempt_status(self): try: verification = SoftwareSecurePhotoVerification.objects.get(id=self.verification_attempt_id) - return verification.status if verification else None + return verification.status except ObjectDoesNotExist: return None diff --git a/edx_name_affirmation/tests/test_models.py b/edx_name_affirmation/tests/test_models.py index 5a030f1..fcef806 100644 --- a/edx_name_affirmation/tests/test_models.py +++ b/edx_name_affirmation/tests/test_models.py @@ -12,35 +12,14 @@ User = get_user_model() -idv_attempt_id = 34455 -idv_attempt_status = 'submitted' - -idv_attempt_id_notfound = 404 -idv_attempt_id_notfound_status = None - - -def _obj(dictionary): - "Helper method to turn a dict into an object. Used to mock below." - - return type('obj', (object,), dictionary) - - -def _mocked_model_get(id): # pylint: disable=redefined-builtin - "Helper method to mock the behavior of SoftwareSecurePhotoVerification model. Used to mock below." - if id == idv_attempt_id_notfound: - raise ObjectDoesNotExist - - if id == idv_attempt_id: - return _obj({'status': idv_attempt_status}) - - return _obj({'status': None}) - - class VerifiedNameModelTests(TestCase): """ Test suite for the VerifiedName models """ def setUp(self): + self.idv_attempt_id = 34455 + self.idv_attempt_status = 'submitted' + self.idv_attempt_id_notfound = 404 self.verified_name = 'Test Tester' self.user = User.objects.create(username='modelTester', email='model@tester.com') self.verified_name = VerifiedName.objects.create( @@ -58,7 +37,7 @@ def test_histories(self): verified_name_history = self.verified_name.history.all().order_by('history_date') assert len(verified_name_history) == 1 self.verified_name.status = VerifiedNameStatus.APPROVED - self.verified_name.verification_attempt_id = idv_attempt_id + self.verified_name.verification_attempt_id = self.idv_attempt_id self.verified_name.save() verified_name_history = self.verified_name.history.all().order_by('history_date') assert len(verified_name_history) == 2 @@ -69,17 +48,37 @@ def test_histories(self): second_history_record = verified_name_history[1] assert second_history_record.status == VerifiedNameStatus.APPROVED - assert second_history_record.verification_attempt_id == idv_attempt_id + assert second_history_record.verification_attempt_id == self.idv_attempt_id @patch('edx_name_affirmation.models.SoftwareSecurePhotoVerification') def test_verification_status(self, sspv_mock): """ Test the model history is recording records as expected """ - sspv_mock.objects.get = _mocked_model_get - self.verified_name.verification_attempt_id = idv_attempt_id_notfound + idv_attempt_id_notfound_status = None + + sspv_mock.objects.get = self._mocked_model_get + + self.verified_name.verification_attempt_id = self.idv_attempt_id_notfound assert self.verified_name.verification_attempt_status is idv_attempt_id_notfound_status - self.verified_name.verification_attempt_id = idv_attempt_id - assert self.verified_name.verification_attempt_status is idv_attempt_status + self.verified_name.verification_attempt_id = self.idv_attempt_id + assert self.verified_name.verification_attempt_status is self.idv_attempt_status + + # Helper methods + + def _obj(self, dictionary): + "Helper method to turn a dict into an object. Used to mock below." + + return type('obj', (object,), dictionary) + + def _mocked_model_get(self, id): # pylint: disable=redefined-builtin + "Helper method to mock the behavior of SoftwareSecurePhotoVerification model. Used to mock below." + if id == self.idv_attempt_id_notfound: + raise ObjectDoesNotExist + + if id == self.idv_attempt_id: + return self._obj({'status': self.idv_attempt_status}) + + return self._obj({'status': None})