コード例 #1
0
    def test_course_structure_to_assignments(self):
        factory = CourseStructureFactory()
        structure = factory.structure

        actual = CourseStructure.course_structure_to_assignments(structure, graded=True)
        expected = self._prepare_structure(structure, factory.assignments)
        self.assertListEqual(actual, expected)

        # Test for assignment type filtering
        assignment_type = factory.grading_policy[0]['assignment_type']
        actual = CourseStructure.course_structure_to_assignments(structure, graded=True,
                                                                 assignment_type=assignment_type)
        assignments = [assignment for assignment in factory.assignments if assignment['format'] == assignment_type]
        expected = self._prepare_structure(structure, assignments)
        self.assertListEqual(actual, expected)
コード例 #2
0
    def assignments(self, assignment_type=None):
        """ Returns the assignments (and problems) for the represented course. """

        assignment_type_name = None if assignment_type is None else assignment_type['name']
        assignment_type_key = self.get_cache_key(u'assignments_{}'.format(assignment_type_name))
        assignments = cache.get(assignment_type_key)

        if not assignments:
            all_assignments_key = self.get_cache_key(u'assignments')
            assignments = cache.get(all_assignments_key)

            if not assignments:
                structure = self._get_structure()
                assignments = CourseStructure.course_structure_to_assignments(
                    structure, graded=True, assignment_type=None)
                cache.set(all_assignments_key, assignments)

            if assignment_type:
                assignment_type['name'] = assignment_type['name'].lower()
                assignments = [assignment for assignment in assignments if
                               assignment['assignment_type'].lower() == assignment_type['name']]

            self.add_child_data_to_parent_blocks(assignments, self._build_graded_answer_distribution_url)
            self.attach_data_to_parents(assignments, self._build_assignment_url)

            # Cache the data for the course-assignment_type combination.
            cache.set(assignment_type_key, assignments)

        return assignments
    def assignments(self, assignment_type=None):
        """ Returns the assignments (and problems) for the represented course. """

        assignment_type_name = None if assignment_type is None else assignment_type['name']
        assignment_type_key = self.get_cache_key(u'assignments_{}'.format(assignment_type_name))
        assignments = cache.get(assignment_type_key)

        if not assignments:
            all_assignments_key = self.get_cache_key(u'assignments')
            assignments = cache.get(all_assignments_key)

            if not assignments:
                structure = self._get_structure()
                assignments = CourseStructure.course_structure_to_assignments(
                    structure, graded=True, assignment_type=None)
                cache.set(all_assignments_key, assignments)

            if assignment_type:
                assignment_type['name'] = assignment_type['name'].lower()
                assignments = [assignment for assignment in assignments if
                               assignment['assignment_type'].lower() == assignment_type['name']]

            self.add_child_data_to_parent_blocks(assignments, self._build_graded_answer_distribution_url)
            self.attach_data_to_parents(assignments, self._build_assignment_url)

            # Cache the data for the course-assignment_type combination.
            cache.set(assignment_type_key, assignments)

        return assignments
コード例 #4
0
    def _get_assignments(self, assignment_type=None):
        structure = self.course_api_client.course_structures(
            self.page.course_id).get()
        assignments = CourseStructure.course_structure_to_assignments(
            structure, graded=True, assignment_type=assignment_type)

        return self._build_submissions(assignments, self._get_problems_dict())
コード例 #5
0
    def _get_assignments(self, assignment_type=None):
        structure = self.course_api_client.course_structures(self.page.course_id).get()
        assignments = CourseStructure.course_structure_to_assignments(
            structure, graded=True, assignment_type=assignment_type
        )

        return self._build_submissions(assignments, self._get_problems_dict())
コード例 #6
0
    def test_course_structure_to_assignments(self):
        factory = CourseStructureFactory()
        structure = factory.structure

        actual = CourseStructure.course_structure_to_assignments(structure,
                                                                 graded=True)
        expected = self._prepare_structure(structure, factory.assignments)
        self.assertListEqual(actual, expected)

        # Test for assignment type filtering
        assignment_type = factory.grading_policy[0]['assignment_type']
        actual = CourseStructure.course_structure_to_assignments(
            structure, graded=True, assignment_type=assignment_type)
        assignments = [
            assignment for assignment in factory.assignments
            if assignment['format'] == assignment_type
        ]
        expected = self._prepare_structure(structure, assignments)
        self.assertListEqual(actual, expected)
コード例 #7
0
 def _assignments(self, assignment_type=None):
     structure = self._structure()
     return CourseStructure.course_structure_to_assignments(structure, graded=True, assignment_type=assignment_type)
コード例 #8
0
 def _assignments(self, assignment_type=None):
     structure = self._structure()
     return CourseStructure.course_structure_to_assignments(
         structure, graded=True, assignment_type=assignment_type)