def test_validate_program_and_course_mode_invalid(self): course_mode = "audit" self.catalog_api.get_program_by_uuid.side_effect = fake_catalog_api.get_program_by_uuid self.catalog_api.get_common_course_modes.side_effect = fake_catalog_api.get_common_course_modes program_uuid = FAKE_PROGRAM_RESPONSE2.get("uuid") form = self._make_bound_form("*****@*****.**", program=program_uuid, course_mode=course_mode) assert not form.is_valid() assert form.errors == { "__all__": [ValidationMessages.COURSE_MODE_NOT_AVAILABLE.format( mode=course_mode, program_title=FAKE_PROGRAM_RESPONSE2.get("title"), modes=", ".join({"professional"}) )] }
def test_validate_program_and_course_mode_valid(self): course_mode = "professional" self.catalog_api.get_program_by_uuid.side_effect = fake_catalog_api.get_program_by_uuid self.catalog_api.get_common_course_modes.side_effect = fake_catalog_api.get_common_course_modes program_uuid = FAKE_PROGRAM_RESPONSE2.get("uuid") form = self._make_bound_form("*****@*****.**", program=program_uuid, course_mode=course_mode) assert form.is_valid() assert form.cleaned_data[form.Fields.PROGRAM] == FAKE_PROGRAM_RESPONSE2
def test_clean_program_http_error(self, exception): course_mode = "professional" self.catalog_api.get_program_by_uuid.side_effect = exception program_uuid = FAKE_PROGRAM_RESPONSE2.get("uuid") form = self._make_bound_form("*****@*****.**", program=program_uuid, course_mode=course_mode) assert not form.is_valid() assert form.errors == { form.Fields.PROGRAM: [ValidationMessages.INVALID_PROGRAM_ID.format(program_id=program_uuid)] }
def test_clean_both_course_and_program_passed(self, enrollment_client): instance = enrollment_client.return_value instance.get_course_details.side_effect = fake_enrollment_api.get_course_details self.catalog_api.get_program_by_uuid.side_effect = fake_catalog_api.get_program_by_uuid self.catalog_api.get_common_course_modes.return_value = {"audit"} program_id = FAKE_PROGRAM_RESPONSE2.get("uuid") course_id = "course-v1:edX+DemoX+Demo_Course" form = self._make_bound_form( "*****@*****.**", program=program_id, course=course_id, course_mode="audit" ) assert not form.is_valid() assert form.errors == { "__all__": [ValidationMessages.COURSE_AND_PROGRAM_ERROR] }