def test_clean_program_course_api_exception(self, program_count):
        course_mode = "professional"
        self.catalog_api.get_program_by_uuid.return_value = None
        self.catalog_api.get_program_by_title.side_effect = MultipleProgramMatchError(program_count)

        form = self._make_bound_form("*****@*****.**", program="irrelevant", course_mode=course_mode)
        assert not form.is_valid()
        assert form.errors == {
            form.Fields.PROGRAM: [ValidationMessages.MULTIPLE_PROGRAM_MATCH.format(program_count=program_count)],
        }
示例#2
0
    def get_program_by_title(self, program_title):
        """
        Return single program by name, or None if not found.

        Arguments:
            program_title(string): Program title as seen by students and in Course Catalog Admin

        Returns:
            dict: Program data provided by Course Catalog API
        """
        all_programs = self._load_data('programs', default=[])
        matching_programs = [
            program for program in all_programs
            if program.get('title') == program_title
        ]
        if len(matching_programs) > 1:
            raise MultipleProgramMatchError(len(matching_programs))
        elif len(matching_programs) == 1:
            return matching_programs[0]
        else:
            return None