def test_program_completion_with_no_id_professional( self, mock_get_certificates_for_user, mock_get_programs): """ Verify that 'no-id-professional' certificates are treated as if they were 'professional' certificates when determining program completion. """ # Create serialized course runs like the ones we expect to receive from # the discovery service's API. These runs are of type 'professional'. course_runs = CourseRunFactory.create_batch(2, type='professional') program = ProgramFactory( courses=[CourseFactory(course_runs=course_runs)]) mock_get_programs.return_value = [program] # Verify that the test program is not complete. meter = ProgramProgressMeter(self.site, self.user) self.assertEqual(meter.completed_programs, []) # Grant a 'no-id-professional' certificate for one of the course runs, # thereby completing the program. mock_get_certificates_for_user.return_value = [ self._make_certificate_result(status='downloadable', type='no-id-professional', course_key=course_runs[0]['key']) ] # Verify that the program is complete. meter = ProgramProgressMeter(self.site, self.user) self.assertEqual(meter.completed_programs, [program['uuid']])
def test_completed_programs_no_id_professional(self, mock_completed_course_runs, mock_get_programs): """ Verify the method treats no-id-professional enrollments as professional enrollments. """ course_runs = CourseRunFactory.create_batch(2, type='no-id-professional') program = ProgramFactory( courses=[CourseFactory(course_runs=course_runs)]) mock_get_programs.return_value = [program] # Verify that no programs are complete. meter = ProgramProgressMeter(self.user) self.assertEqual(meter.completed_programs, []) # Complete all programs. for course_run in course_runs: CourseEnrollmentFactory(user=self.user, course_id=course_run['key'], mode='no-id-professional') mock_completed_course_runs.return_value = [{ 'course_run_id': course_run['key'], 'type': MODES.professional } for course_run in course_runs] # Verify that all programs are complete. meter = ProgramProgressMeter(self.user) self.assertEqual(meter.completed_programs, [program['uuid']])
def test_get_course_runs(self, mock_get_edx_api_data): """ Test retrieval of course runs. """ catalog_course_runs = CourseRunFactory.create_batch(10) mock_get_edx_api_data.return_value = catalog_course_runs data = get_course_runs() self.assertTrue(mock_get_edx_api_data.called) self.assert_contract(mock_get_edx_api_data.call_args) self.assertEqual(data, catalog_course_runs)
def test_get_course_owners_by_course(self, mock_get_edx_api_data): """ Test retrieval of course runs. """ catalog_course_runs = CourseRunFactory.create_batch(10) catalog_course = CourseFactory(course_runs=catalog_course_runs) mock_get_edx_api_data.return_value = catalog_course data = get_owners_for_course(course_uuid=str(catalog_course['uuid'])) self.assertTrue(mock_get_edx_api_data.called) self.assertEqual(data, catalog_course['owners'])
def test_get_course_runs(self, mock_get_edx_api_data): """ Test retrieval of course runs. """ catalog_course_runs = CourseRunFactory.create_batch(10) mock_get_edx_api_data.return_value = catalog_course_runs data = get_course_runs() self.assertTrue(mock_get_edx_api_data.called) self.assert_contract(mock_get_edx_api_data.call_args) self.assertEqual(data, catalog_course_runs)
def test_get_course_owners_by_course(self, mock_get_edx_api_data): """ Test retrieval of course runs. """ catalog_course_runs = CourseRunFactory.create_batch(10) catalog_course = CourseFactory(course_runs=catalog_course_runs) mock_get_edx_api_data.return_value = catalog_course data = get_owners_for_course(course_uuid=str(catalog_course['uuid'])) self.assertTrue(mock_get_edx_api_data.called) self.assertEqual(data, catalog_course['owners'])
def test_get_course_runs_by_course(self, mock_get_edx_api_data): """ Test retrievals of run from a Course. """ catalog_course_runs = CourseRunFactory.create_batch(10) catalog_course = CourseFactory(course_runs=catalog_course_runs) mock_get_edx_api_data.return_value = catalog_course data = get_course_runs_for_course(course_uuid=str(catalog_course['uuid'])) assert mock_get_edx_api_data.called assert data == catalog_course_runs
def test_program_completion_with_no_id_professional(self, mock_get_certificates_for_user, mock_get_programs): """ Verify that 'no-id-professional' certificates are treated as if they were 'professional' certificates when determining program completion. """ # Create serialized course runs like the ones we expect to receive from # the discovery service's API. These runs are of type 'professional'. course_runs = CourseRunFactory.create_batch(2, type='professional') program = ProgramFactory(courses=[CourseFactory(course_runs=course_runs)]) mock_get_programs.return_value = [program] # Verify that the test program is not complete. meter = ProgramProgressMeter(self.site, self.user) self.assertEqual(meter.completed_programs, []) # Grant a 'no-id-professional' certificate for one of the course runs, # thereby completing the program. mock_get_certificates_for_user.return_value = [ self._make_certificate_result(status='downloadable', type='no-id-professional', course_key=course_runs[0]['key']) ] # Verify that the program is complete. meter = ProgramProgressMeter(self.site, self.user) self.assertEqual(meter.completed_programs, [program['uuid']])