def get_languages(): env = os.environ.get("TEST_LANGS") if not env or env == "all": langs = _fetch_langs() langs.update(_extra_langs()) elif env == "fetch": langs = _fetch_langs() elif env == "extra": langs = _extra_langs() else: env_langs = env.split(",") env_langs = [l for l in env_langs if l] langs = env_langs return langs
def __init__(self, bot, **kwargs): self.bot = bot self.parse_kwargs(kwargs) # Grab valid TTS languages from `gtts.lang` to give language options try: self.valid_tts_langs = tts_langs() except RuntimeError: self.valid_tts_langs = _extra_langs() self.load_sounds()
def test_main_langs(): """Fetch languages successfully""" # Downloaded Languages # Safe to assume 'en' (english) will always be there scraped_langs = _main_langs() assert 'en' in scraped_langs # Add-in Languages all_langs = tts_langs() extra_langs = _extra_langs() assert len(all_langs) == len(scraped_langs) + len(extra_langs)
def test_langs_dict(): """Construct a dict of suites of languages to test. { '<suite name>' : <list or dict of language tags> } ex.: { 'fetch' : {'en': 'English', 'fr': 'French'}, 'extra' : {'en': 'English', 'fr': 'French'} } ex.: { 'environ' : ['en', 'fr'] } """ langs = dict() env = os.environ.get('TEST_LANGS', '') if env == '' or env == 'all': langs['fetch'] = _fetch_langs() langs['extra'] = _extra_langs() elif env == 'fetch': langs['fetch'] = _fetch_langs() elif env == 'extra': langs['extra'] = _extra_langs() else: env_langs = env.split(',') env_langs = [l for l in env_langs if l] langs['environ'] = env_langs return langs
def test_fetch_langs(self): """Fetch languages successfully""" # Downloaded Languages # Safe to assume 'en' (english) will always be there scraped_langs = _fetch_langs() self.assertTrue('en' in scraped_langs) # Scraping garbage self.assertFalse('Detect language' in scraped_langs) self.assertFalse('—' in scraped_langs) # Add-in Languages all_langs = tts_langs() extra_langs = _extra_langs() self.assertEqual(len(all_langs), len(scraped_langs) + len(extra_langs))
def test_fetch_langs(): """Fetch languages successfully""" # Downloaded Languages # Safe to assume 'en' (english) will always be there scraped_langs = _fetch_langs() assert 'en' in scraped_langs # Scraping garbage assert 'Detect language' not in scraped_langs assert '—' not in scraped_langs # Add-in Languages all_langs = tts_langs() extra_langs = _extra_langs() assert len(all_langs) == len(scraped_langs) + len(extra_langs)
# * 'extra': Languagee set in Languages.EXTRA_LANGS # * 'all': All of the above # * <csv>: Languages tags list to test # Unset TEST_LANGS to test everything ('all') # See: langs_dict() """Construct a dict of suites of languages to test. { '<suite name>' : <list or dict of language tags> } ex.: { 'fetch' : {'en': 'English', 'fr': 'French'}, 'extra' : {'en': 'English', 'fr': 'French'} } ex.: { 'environ' : ['en', 'fr'] } """ env = os.environ.get('TEST_LANGS') if not env or env == 'all': langs = _fetch_langs() langs.update(_extra_langs()) elif env == 'fetch': langs = _fetch_langs() elif env == 'extra': langs = _extra_langs() else: env_langs = env.split(',') env_langs = [l for l in env_langs if l] langs = env_langs @pytest.mark.parametrize('lang', langs.keys(), ids=list(langs.values())) def test_TTS(tmp_path, lang): """Test all supported languages and file save""" text = "This is a test"