test_settings_loader.py 5.8 KB

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