def add_entrance_exam_milestone(course, entrance_exam): """ Adds the milestone for given `entrance_exam` in `course` Args: course (Course): Course object in which the extrance_exam is located entrance_exam (xblock): the entrance exam to be added as a milestone """ namespace_choices = get_namespace_choices() milestone_relationship_types = get_milestone_relationship_types() milestone_namespace = generate_milestone_namespace( namespace_choices.get('ENTRANCE_EXAM'), course.id ) milestone = add_milestone( { 'name': 'Test Milestone', 'namespace': milestone_namespace, 'description': 'Testing Courseware Entrance Exam Chapter', } ) add_course_milestone( str(course.id), milestone_relationship_types['REQUIRES'], milestone ) add_course_content_milestone( str(course.id), str(entrance_exam.location), milestone_relationship_types['FULFILLS'], milestone )
def test_get_course_tabs_list_entrance_exam_enabled(self): """ Unit Test: test_get_course_tabs_list_entrance_exam_enabled """ entrance_exam = ItemFactory.create( category="chapter", parent_location=self.course.location, data="Exam Data", display_name="Entrance Exam", is_entrance_exam=True) milestone = { 'name': 'Test Milestone', 'namespace': '{}.entrance_exams'.format(str(self.course.id)), 'description': 'Testing Courseware Tabs' } self.user.is_staff = False self.course.entrance_exam_enabled = True self.course.entrance_exam_id = str(entrance_exam.location) milestone = add_milestone(milestone) add_course_milestone(str(self.course.id), self.relationship_types['REQUIRES'], milestone) add_course_content_milestone(str(self.course.id), str(entrance_exam.location), self.relationship_types['FULFILLS'], milestone) course_tab_list = get_course_tab_list(self.user, self.course) assert len(course_tab_list) == 1 assert course_tab_list[0]['tab_id'] == 'courseware' assert course_tab_list[0]['name'] == 'Entrance Exam'
def add_entrance_exam_milestone(course_id, x_block): # lint-amnesty, pylint: disable=missing-function-docstring # Add an entrance exam milestone if one does not already exist for given xBlock # As this is a standalone method for entrance exam, We should check that given xBlock should be an entrance exam. if x_block.is_entrance_exam: namespace_choices = milestones_helpers.get_namespace_choices() milestone_namespace = milestones_helpers.generate_milestone_namespace( namespace_choices.get('ENTRANCE_EXAM'), course_id ) milestones = milestones_helpers.get_milestones(milestone_namespace) if len(milestones): # lint-amnesty, pylint: disable=len-as-condition milestone = milestones[0] else: description = f'Autogenerated during {str(course_id)} entrance exam creation.' milestone = milestones_helpers.add_milestone({ 'name': _('Completed Course Entrance Exam'), 'namespace': milestone_namespace, 'description': description }) relationship_types = milestones_helpers.get_milestone_relationship_types() milestones_helpers.add_course_milestone( str(course_id), relationship_types['REQUIRES'], milestone ) milestones_helpers.add_course_content_milestone( str(course_id), str(x_block.location), relationship_types['FULFILLS'], milestone )
def test_add_milestone_returns_none_when_app_disabled(self): response = milestones_helpers.add_milestone( milestone_data=self.milestone) assert response is None