def test_get_language_invalid(): """ Test get_language() when supplied with a string which is not a valid language name or code. """ # GIVEN: A language code # WHEN: Calling get_language with it language = get_language('qwerty') # THEN: None should be returned assert language is None
def test_get_language_code(): """ Test get_language() when supplied with a language code. """ # GIVEN: A language code in capitals # WHEN: Calling get_language with it language = get_language('IA') # THEN: The Language found using that code should be returned assert isinstance(language, Language) assert language.id == 51 assert language.name == 'Interlingua' assert language.code == 'ia'
def test_get_language_name(): """ Test get_language() when supplied with a language name. """ # GIVEN: A language name, in capitals # WHEN: Calling get_language with it language = get_language('YORUBA') # THEN: The Language found using that name should be returned assert isinstance(language, Language) assert language.id == 137 assert language.name == 'Yoruba' assert language.code == 'yo'
def get_language_id(self, file_language=None, bible_name=None): """ Get the language_id for the language of the bible. Fallback to user input if we cannot do this pragmatically. :param file_language: Language of the bible. Possibly retrieved from the file being imported. Str :param bible_name: Name of the bible to display on the get_language dialog. Str :return: The id of a language Int or None """ language_id = None if file_language: language = get_language(file_language) if language and language.id: language_id = language.id if not language_id: # The language couldn't be detected, ask the user language_id = self.get_language(bible_name) if not language_id: # User cancelled get_language dialog self.log_error( 'Language detection failed when importing from "{name}". User aborted language selection.' .format(name=bible_name)) return None self.save_meta('language_id', language_id) return language_id