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)], }
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