Ejemplo n.º 1
0
    def test_run_own_code_on(self):
        lingua_franca.load_language('en')
        # nice_number() has a run_own_code_on for unrecognized languages,
        # because backwards compatibility requires it to fall back on
        # str(input_value) rather than failing loudly
        #
        # 'cz' is not a supported language, so the function will raise
        # an UnsupportedLanguageError, but nice_number() is decorated with
        # @localized_function(run_own_code_on=[UnsupportedLanguageError])
        self.assertEqual(lingua_franca.format.nice_number(123, lang='cz'),
                         "123")
        self.assertEqual(lingua_franca.format.nice_number(123.45, speech=False, lang='cz'),
                         "123.45")
        # It won't intercept other exceptions, though!
        with self.assertRaises(ModuleNotFoundError):
            unload_all_languages()
            lingua_franca.format.nice_number(123.45)
            # ModuleNotFoundError: No language module loaded.

        with self.assertRaises(ValueError):
            @localized_function("not an error type")
            def foo_must_fail():
                pass
        with self.assertRaises(ValueError):
            @localized_function(print)
            def bar_must_fail_too():
                pass
        with self.assertRaises(ValueError):
            @localized_function([1, 2, 3])
            def baz_must_fail_as_well():
                pass
Ejemplo n.º 2
0
    def test_full_lang_code(self):
        unload_all_languages()
        self.assertEqual(lingua_franca.get_default_lang(), None)
        # Return default full lang code if no primary code is passed
        lingua_franca.load_language('en')
        self.assertEqual(lingua_franca.get_full_lang_code(), 'en-us')

        lingua_franca.load_language('es')
        lingua_franca.set_default_lang('es')
        self.assertEqual(lingua_franca.get_full_lang_code(), 'es-es')

        # Go look up the default full code for a provided primary code
        self.assertEqual(lingua_franca.get_full_lang_code('de'), 'de-de')
        # Fail on wrong type, or language not recognized
        with self.assertRaises(TypeError):
            lingua_franca.get_full_lang_code(12)

# TODO remove this test and replace with the one below as soon as practical
        self.assertWarns(DeprecationWarning, lingua_franca.get_full_lang_code,
                         "bob robertson")

        # TODO this is the version of the test we should use once invalid lang
        # params are deprecated:
        #
        #        with self.assertRaises(
        #                lingua_franca.internal.UnsupportedLanguageError):
        #            lingua_franca.get_full_lang_code("bob robertson")
        unload_all_languages()
Ejemplo n.º 3
0
 def test_gender(self):
     with self.assertRaises(FunctionNotLocalizedError):
         get_gender("person")  # lang="en-us"
     load_language("pt")
     self.assertEqual(get_gender("person", lang="pt"), None)
     self.assertEqual(get_gender("vaca", lang="pt"), "f")
     load_language("it")
     self.assertEqual(get_gender('cavallo', lang='it'), 'm')
Ejemplo n.º 4
0
    def test_auto_default_language(self):
        lingua_franca.load_language('en')

        # Load two languages, ensure first is default
        lingua_franca.load_languages(['en', 'es'])
        self.assertEqual(lingua_franca.get_default_lang(), 'en')
        self.assertEqual(lingua_franca.parse.extract_number('one'), 1)
        unload_all_languages()
Ejemplo n.º 5
0
 def test_primary_lang_code(self):
     unload_all_languages()
     lingua_franca.load_language('en')
     # should default to the default lang with no input
     self.assertEqual(lingua_franca.get_primary_lang_code(), 'en')
     with self.assertRaises(TypeError):
         lingua_franca.get_primary_lang_code(12)
     unload_all_languages()
Ejemplo n.º 6
0
    def test_load_on_demand(self):
        unload_all_languages()
        lingua_franca.load_language("en")
        lingua_franca.config.load_langs_on_demand = True
        self.assertEqual(lingua_franca.parse.extract_number("one", lang="en"),
                         1)
        self.assertEqual(lingua_franca.parse.extract_number("uno", lang="es"),
                         1)

        lingua_franca.config.load_langs_on_demand = False
        # English should still be loaded, but not Spanish
        self.assertEqual(lingua_franca.parse.extract_number("one", lang="en"),
                         1)
        with self.assertRaises(NoSuchModuleError):
            lingua_franca.parse.extract_number("uno", lang="es")
        unload_all_languages()
Ejemplo n.º 7
0
    def test_load_language(self):
        lingua_franca.load_language('en')

        # Verify that English is loaded and, since it's the only language
        # we've loaded, also the default.
        self.assertEqual(lingua_franca.get_default_lang(), 'en')
        # Verify that English's default full code is 'en-us'
        self.assertEqual(lingua_franca.get_full_lang_code('en'), 'en-us')
        # Verify that this is also our current full code
        self.assertEqual(lingua_franca.get_default_loc(), 'en-us')
        self.assertFalse('es' in lingua_franca.get_active_langs())

        # Verify that unloaded languages can't be invoked explicitly
        self.assertRaises(ModuleNotFoundError,
                          lingua_franca.parse.extract_number,
                          'uno', lang='es')
        unload_all_languages()
Ejemplo n.º 8
0
    def test_default_language_singles(self):

        # Load languages one at a time, ensure first is default
        self.assertEqual(lingua_franca.get_active_langs(), [])
        lingua_franca.load_language('en')
        self.assertEqual(lingua_franca.get_default_lang(), 'en')
        lingua_franca.load_language('es')
        self.assertEqual(lingua_franca.get_default_lang(), 'en')

        self.assertEqual(lingua_franca.parse.extract_number('dos'), False)
        self.assertEqual(lingua_franca.parse.extract_number('dos', lang='es'),
                         2)

        # Verify default language failover
        lingua_franca.unload_language('en')
        self.assertEqual(lingua_franca.get_default_lang(), 'es')
        unload_all_languages()
Ejemplo n.º 9
0
def setUpModule():
    load_language('pt-pt')
    set_default_lang('pt')
Ejemplo n.º 10
0
def setUpModule():
    load_language('sv-se')
Ejemplo n.º 11
0
def setUpModule():
    load_language('es')
    set_default_lang('es')
Ejemplo n.º 12
0
def setUpModule():
    load_language('it-it')
    set_default_lang('it')
Ejemplo n.º 13
0
def setUpModule():
    load_language("pl-pl")
    set_default_lang("pl")
Ejemplo n.º 14
0
def setUpModule():
    load_language('de-de')
Ejemplo n.º 15
0
 def test_type_error(self):
     with self.assertRaises(TypeError):
         lingua_franca.load_language(12)
Ejemplo n.º 16
0
def setUpModule():
    load_language('nl')
Ejemplo n.º 17
0
def setUpModule():
    load_language('da-dk')
    set_default_lang('da')
Ejemplo n.º 18
0
import pytest
from pathlib import Path

from lingua_franca import load_language
from lingua_franca.internal import UnsupportedLanguageError

from mycroft.configuration import Configuration, set_default_lf_lang
from mycroft.util.format import (TimeResolution, nice_number, nice_time,
                                 nice_date, nice_date_time, nice_year,
                                 nice_duration, nice_duration_dt,
                                 pronounce_number, date_time_format, join_list)

# The majority of these tests are explicitly written for English.
# Changes to the default language are tested below.
default_lang = "en-us"
load_language(default_lang)

NUMBERS_FIXTURE_EN = {
    1.435634: '1.436',
    2: '2',
    5.0: '5',
    0.027: '0.027',
    0.5: 'a half',
    1.333: '1 and a third',
    2.666: '2 and 2 thirds',
    0.25: 'a forth',
    1.25: '1 and a forth',
    0.75: '3 forths',
    1.75: '1 and 3 forths',
    3.4: '3 and 2 fifths',
    16.8333: '16 and 5 sixths',
Ejemplo n.º 19
0
def setUpModule():
    load_language('hu-hu')
    set_default_lang('hu')
Ejemplo n.º 20
0
def setUpModule():
    load_language('nl-nl')
    set_default_lang('nl-nl')
Ejemplo n.º 21
0
 def test_function_not_localized_error(self):
     lingua_franca.load_language('en')
     with self.assertRaises(
             lingua_franca.internal.FunctionNotLocalizedError):
         lingua_franca.parse.is_ordinal("twelve")
     unload_all_languages()
Ejemplo n.º 22
0
import lingua_franca

from jarvis.skills import intent_manager
from jarvis.skills.daily.timer import TimerSkill
from jarvis.skills.entertainement.decide import DecideSkill
from jarvis.skills.entertainement.jokes import JokesSkill
from jarvis.skills.entertainement.spotify import SpotifySkill
from jarvis.skills.entertainement.weather import WeatherSkill
from jarvis.skills.productivity.speedtest import SpeedTestSkill
from jarvis.skills.research.wikipedia import WikipediaSkill
from jarvis.utils import languages_utils, flask_utils

if __name__ == '__main__':
    # Load lingua franca in the memory
    # Supported : English French German Hungarian Italian Portuguese Swedish
    lingua_franca.load_language(
        lang=languages_utils.get_language_only_country())

    # Tests
    WikipediaSkill().register()
    JokesSkill().register()
    SpotifySkill().register()
    SpeedTestSkill().register()
    DecideSkill().register()
    TimerSkill().register()
    WeatherSkill().register()

    # Load all skills
    intent_manager.load_all_skills()

    # Train Padatious models
    intent_manager.train_padatious()
Ejemplo n.º 23
0
"""Tests for the mycroft skill's get_response variations."""

from os.path import dirname, join
from threading import Thread
import time
from unittest import TestCase, mock

from lingua_franca import load_language

from mycroft import MycroftSkill
from mycroft.messagebus import Message

from test.unittests.mocks import base_config, AnyCallable

load_language("en-us")


def create_converse_responder(response, skill):
    """Create a function to inject a response into the converse method.

    The function waits for the converse method to be replaced by the
    _wait_response logic and afterwards injects the provided response.

    Args:
        response (str): Sentence to inject.
        skill (MycroftSkill): skill to monitor.
    """
    default_converse = skill.converse
    converse_return = None

    def wait_for_new_converse():
Ejemplo n.º 24
0
def setUpModule():
    load_language("cs-cz")
    set_default_lang("cs")
Ejemplo n.º 25
0
def setUpModule():
    load_language('fr-fr')
    set_default_lang('fr')
Ejemplo n.º 26
0
def setUpModule():
    load_language("de-de")
    set_default_lang("de")