Skip to content

Commit

Permalink
chore: Moved test variables to be more localized
Browse files Browse the repository at this point in the history
  • Loading branch information
rijuma committed Sep 9, 2024
1 parent d54fa93 commit b8069b7
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 31 deletions.
2 changes: 1 addition & 1 deletion edx_name_affirmation/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
59 changes: 29 additions & 30 deletions edx_name_affirmation/tests/test_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -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='[email protected]')
self.verified_name = VerifiedName.objects.create(
Expand All @@ -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
Expand All @@ -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})

Check failure on line 84 in edx_name_affirmation/tests/test_models.py

View workflow job for this annotation

GitHub Actions / Tests (ubuntu-20.04, 3.11, 10, django42)

Missing coverage

Missing coverage on line 84

0 comments on commit b8069b7

Please sign in to comment.