test_settings_loader.py 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. import unittest
  2. from kalliope.core.ConfigurationManager import SettingLoader
  3. from kalliope.core.Models.RestAPI import RestAPI
  4. from kalliope.core.Models.Stt import Stt
  5. from kalliope.core.Models.Trigger import Trigger
  6. from kalliope.core.Models.Tts import Tts
  7. class TestSettingLoader(unittest.TestCase):
  8. def setUp(self):
  9. self.settings_file_to_test = "../Tests/settings/settings_test.yml"
  10. self.settings_dict = {
  11. 'rest_api':
  12. {'active': True,
  13. 'login': 'admin',
  14. 'password': 'secret',
  15. 'password_protected': True,
  16. 'port': 5000},
  17. 'default_trigger': 'snowboy',
  18. 'triggers': [{'snowboy': {'pmdl_file': 'trigger/snowboy/resources/kalliope-FR-6samples.pmdl'}}],
  19. 'speech_to_text': [{'google': {'language': 'fr-FR'}}],
  20. 'cache_path': '/tmp/kalliope_tts_cache',
  21. 'random_wake_up_answers': ['Oui monsieur?'],
  22. 'default_text_to_speech': 'pico2wave',
  23. 'default_speech_to_text': 'google',
  24. 'random_wake_up_sounds': ['ding.wav', 'dong.wav'],
  25. 'text_to_speech': [
  26. {'pico2wave': {'cache': True, 'language': 'fr-FR'}},
  27. {'voxygen': {'voice': 'Agnes', 'cache': True}}
  28. ]
  29. }
  30. def test_singleton(self):
  31. s1 = SettingLoader.Instance(file_path=self.settings_file_to_test)
  32. s2 = SettingLoader.Instance(file_path=self.settings_file_to_test)
  33. self.assertTrue(s1.settings is s2.settings)
  34. del s1
  35. del s2
  36. # def test_get_yaml_config(self):
  37. #
  38. # sl = SettingLoader.Instance(file_path=self.settings_file_to_test)
  39. # self.assertEqual(sl.yaml_config, self.settings_dict)
  40. # del sl
  41. #
  42. # def test_get_settings(self):
  43. # settings_object = Settings()
  44. # settings_object.default_tts_name = "pico2wave"
  45. # settings_object.default_stt_name = "google"
  46. # settings_object.default_trigger_name = "snowboy"
  47. # tts1 = Tts(name="pico2wave", parameters={'cache': True, 'language': 'fr-FR'})
  48. # tts2 = Tts(name="voxygen", parameters={'voice': 'Agnes', 'cache': True})
  49. # settings_object.ttss = [tts1, tts2]
  50. # stt = Stt(name="google", parameters={'language': 'fr-FR'})
  51. # settings_object.stts = [stt]
  52. # settings_object.random_wake_up_answers = ['Oui monsieur?']
  53. # settings_object.random_wake_up_sounds = ['ding.wav', 'dong.wav']
  54. # trigger1 = Trigger(name="snowboy",
  55. # parameters={'pmdl_file': 'trigger/snowboy/resources/kalliope-FR-6samples.pmdl'})
  56. # settings_object.triggers = [trigger1]
  57. # settings_object.rest_api = RestAPI(password_protected=True, active=True,
  58. # login="admin", password="secret", port=5000)
  59. # settings_object.cache_path = '/tmp/kalliope_tts_cache'
  60. # settings_object.machine = platform.machine()
  61. #
  62. # sl = SettingLoader.Instance(file_path=self.settings_file_to_test)
  63. #
  64. # self.assertEqual(settings_object, sl.settings)
  65. # del sl
  66. def test_get_default_speech_to_text(self):
  67. expected_default_speech_to_text = "google"
  68. sl = SettingLoader.Instance(file_path=self.settings_file_to_test)
  69. self.assertEqual(expected_default_speech_to_text, sl._get_default_speech_to_text(self.settings_dict))
  70. del sl
  71. def test_get_default_text_to_speech(self):
  72. expected_default_text_to_speech = "pico2wave"
  73. sl = SettingLoader.Instance(file_path=self.settings_file_to_test)
  74. self.assertEqual(expected_default_text_to_speech, sl._get_default_text_to_speech(self.settings_dict))
  75. del sl
  76. def test_get_default_trigger(self):
  77. expected_default_trigger = "snowboy"
  78. sl = SettingLoader.Instance(file_path=self.settings_file_to_test)
  79. self.assertEqual(expected_default_trigger, sl._get_default_trigger(self.settings_dict))
  80. del sl
  81. def test_get_stts(self):
  82. stt = Stt(name="google", parameters={'language': 'fr-FR'})
  83. sl = SettingLoader.Instance(file_path=self.settings_file_to_test)
  84. self.assertEqual([stt], sl._get_stts(self.settings_dict))
  85. del sl
  86. def test_get_ttss(self):
  87. tts1 = Tts(name="pico2wave", parameters={'cache': True, 'language': 'fr-FR'})
  88. tts2 = Tts(name="voxygen", parameters={'voice': 'Agnes', 'cache': True})
  89. sl = SettingLoader.Instance(file_path=self.settings_file_to_test)
  90. self.assertEqual([tts1, tts2], sl._get_ttss(self.settings_dict))
  91. del sl
  92. def test_get_triggers(self):
  93. trigger1 = Trigger(name="snowboy",
  94. parameters={'pmdl_file': 'trigger/snowboy/resources/kalliope-FR-6samples.pmdl'})
  95. sl = SettingLoader.Instance(file_path=self.settings_file_to_test)
  96. self.assertEqual([trigger1], sl._get_triggers(self.settings_dict))
  97. del sl
  98. def test_get_random_wake_up_answers(self):
  99. expected_random_wake_up_answers = ['Oui monsieur?']
  100. sl = SettingLoader.Instance(file_path=self.settings_file_to_test)
  101. self.assertEqual(expected_random_wake_up_answers, sl._get_random_wake_up_answers(self.settings_dict))
  102. del sl
  103. def test_get_rest_api(self):
  104. expected_rest_api = RestAPI(password_protected=True, active=True,
  105. login="admin", password="secret", port=5000)
  106. sl = SettingLoader.Instance(file_path=self.settings_file_to_test)
  107. self.assertEqual(expected_rest_api, sl._get_rest_api(self.settings_dict))
  108. del sl
  109. def test_get_cache_path(self):
  110. expected_cache_path = '/tmp/kalliope_tts_cache'
  111. sl = SettingLoader.Instance(file_path=self.settings_file_to_test)
  112. self.assertEqual(expected_cache_path, sl._get_cache_path(self.settings_dict))
  113. del sl
  114. if __name__ == '__main__':
  115. unittest.main()