def test_get_user_programs_credentials(self): """Verify program credentials data can be retrieved and parsed correctly.""" # create credentials and program configuration self.create_credentials_config() # Mocking the API responses from programs and credentials primary_uuid, alternate_uuid = str(uuid.uuid4()), str(uuid.uuid4()) credentials_api_response = { "next": None, "results": [ factories.UserCredential( username='******', credential=factories.ProgramCredential(program_uuid=primary_uuid) ), factories.UserCredential( username='******', credential=factories.ProgramCredential(program_uuid=alternate_uuid) ) ] } self.mock_credentials_api(self.user, data=credentials_api_response, reset_url=False) programs = [ ProgramFactory(uuid=primary_uuid), ProgramFactory(uuid=alternate_uuid) ] with mock.patch("openedx.core.djangoapps.credentials.utils.get_programs_for_credentials") as mock_get_programs: mock_get_programs.return_value = programs actual = get_user_program_credentials(self.user) # checking response from API is as expected self.assertEqual(len(actual), 2) self.assertEqual(actual, programs)
def test_get_user_program_credentials_revoked(self): """Verify behavior if credential revoked.""" self.create_credentials_config() credential_data = { "results": [{ "id": 1, "username": "******", "credential": { "credential_id": 1, "program_id": 1 }, "status": "revoked", "uuid": "dummy-uuid-1" }] } self.mock_credentials_api(self.user, data=credential_data) actual = get_user_program_credentials(self.user) self.assertEqual(actual, [])
def test_get_user_programs_credentials(self): """Verify program credentials data can be retrieved and parsed correctly.""" # create credentials and program configuration self.create_credentials_config() self.create_programs_config() # Mocking the API responses from programs and credentials self.mock_programs_api() self.mock_credentials_api(self.user, reset_url=False) actual = get_user_program_credentials(self.user) expected = self.PROGRAMS_API_RESPONSE['results'][:2] expected[0]['credential_url'] = self.PROGRAMS_CREDENTIALS_DATA[0]['certificate_url'] expected[1]['credential_url'] = self.PROGRAMS_CREDENTIALS_DATA[1]['certificate_url'] # checking response from API is as expected self.assertEqual(len(actual), 2) self.assertEqual(actual, expected)
def test_get_user_program_credentials_revoked(self): """Verify behavior if credential revoked.""" self.create_credentials_config() credential_data = {"results": [ { "id": 1, "username": "******", "credential": { "credential_id": 1, "program_id": 1 }, "status": "revoked", "uuid": "dummy-uuid-1" } ]} self.mock_credentials_api(self.user, data=credential_data) actual = get_user_program_credentials(self.user) self.assertEqual(actual, [])
def test_get_user_programs_credentials(self): """Verify program credentials data can be retrieved and parsed correctly.""" # create credentials and program configuration self.create_credentials_config() # Mocking the API responses from programs and credentials primary_uuid, alternate_uuid = str(uuid.uuid4()), str(uuid.uuid4()) credentials_api_response = { "next": None, "results": [ factories.UserCredential( username='******', credential=factories.ProgramCredential( program_uuid=primary_uuid)), factories.UserCredential( username='******', credential=factories.ProgramCredential( program_uuid=alternate_uuid)) ] } self.mock_credentials_api(self.user, data=credentials_api_response, reset_url=False) programs = [ ProgramFactory(uuid=primary_uuid), ProgramFactory(uuid=alternate_uuid) ] with mock.patch( "openedx.core.djangoapps.credentials.utils.get_programs_for_credentials" ) as mock_get_programs: mock_get_programs.return_value = programs actual = get_user_program_credentials(self.user) # checking response from API is as expected self.assertEqual(len(actual), 2) self.assertEqual(actual, programs)
def test_get_user_program_credentials_no_credential(self): """Verify behavior if no credential exist.""" self.create_credentials_config() self.mock_credentials_api(self.user, data={'results': []}) actual = get_user_program_credentials(self.user) self.assertEqual(actual, [])
def test_get_user_program_credentials_issuance_disable(self): """Verify that user program credentials cannot be retrieved if issuance is disabled.""" self.create_credentials_config(enable_learner_issuance=False) actual = get_user_program_credentials(self.user) self.assertEqual(actual, [])