test_resources_manager.py 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. import os
  2. import unittest
  3. from mock import mock
  4. from kalliope import ResourcesManager
  5. from kalliope.core.Models import Resources
  6. from kalliope.core.Models.Dna import Dna
  7. class TestResourcesmanager(unittest.TestCase):
  8. def setUp(self):
  9. pass
  10. def tearDown(self):
  11. pass
  12. def test_is_settings_ok(self):
  13. # -----------------
  14. # valid resource
  15. # -----------------
  16. # valid neuron
  17. valid_resource = Resources()
  18. valid_resource.neuron_folder = "/path"
  19. dna = Dna()
  20. dna.module_type = "neuron"
  21. self.assertTrue(ResourcesManager.is_settings_ok(valid_resource, dna))
  22. # valid stt
  23. valid_resource = Resources()
  24. valid_resource.stt_folder = "/path"
  25. dna = Dna()
  26. dna.module_type = "stt"
  27. self.assertTrue(ResourcesManager.is_settings_ok(valid_resource, dna))
  28. # valid tts
  29. valid_resource = Resources()
  30. valid_resource.tts_folder = "/path"
  31. dna = Dna()
  32. dna.module_type = "tss"
  33. self.assertTrue(ResourcesManager.is_settings_ok(valid_resource, dna))
  34. # valid trigger
  35. valid_resource = Resources()
  36. valid_resource.trigger_folder = "/path"
  37. dna = Dna()
  38. dna.module_type = "trigger"
  39. self.assertTrue(ResourcesManager.is_settings_ok(valid_resource, dna))
  40. # -----------------
  41. # invalid resource
  42. # -----------------
  43. # valid neuron
  44. valid_resource = Resources()
  45. valid_resource.neuron_folder = None
  46. dna = Dna()
  47. dna.module_type = "neuron"
  48. self.assertFalse(ResourcesManager.is_settings_ok(valid_resource, dna))
  49. # valid stt
  50. valid_resource = Resources()
  51. valid_resource.stt_folder = None
  52. dna = Dna()
  53. dna.module_type = "stt"
  54. self.assertFalse(ResourcesManager.is_settings_ok(valid_resource, dna))
  55. # valid tts
  56. valid_resource = Resources()
  57. valid_resource.tts_folder = None
  58. dna = Dna()
  59. dna.module_type = "tts"
  60. self.assertFalse(ResourcesManager.is_settings_ok(valid_resource, dna))
  61. # valid trigger
  62. valid_resource = Resources()
  63. valid_resource.trigger_folder = None
  64. dna = Dna()
  65. dna.module_type = "trigger"
  66. self.assertFalse(ResourcesManager.is_settings_ok(valid_resource, dna))
  67. def test_is_repo_ok(self):
  68. # valid repo
  69. if "/Tests" in os.getcwd():
  70. dna_file_path = "modules/dna.yml"
  71. install_file_path = "modules/install.yml"
  72. else:
  73. dna_file_path = "Tests/modules/dna.yml"
  74. install_file_path = "Tests/modules/install.yml"
  75. self.assertTrue(ResourcesManager.is_repo_ok(dna_file_path=dna_file_path, install_file_path=install_file_path))
  76. # missing dna
  77. if "/Tests" in os.getcwd():
  78. dna_file_path = ""
  79. install_file_path = "modules/install.yml"
  80. else:
  81. dna_file_path = "T"
  82. install_file_path = "Tests/modules/install.yml"
  83. self.assertFalse(ResourcesManager.is_repo_ok(dna_file_path=dna_file_path, install_file_path=install_file_path))
  84. # missing install
  85. if "/Tests" in os.getcwd():
  86. dna_file_path = "modules/dna.yml"
  87. install_file_path = ""
  88. else:
  89. dna_file_path = "Tests/modules/dna.yml"
  90. install_file_path = ""
  91. self.assertFalse(ResourcesManager.is_repo_ok(dna_file_path=dna_file_path, install_file_path=install_file_path))
  92. def test_get_target_folder(self):
  93. # test get neuron folder
  94. resources = Resources()
  95. resources.neuron_folder = '/var/tmp/test/resources'
  96. self.assertEqual(ResourcesManager._get_target_folder(resources, "neuron"), "/var/tmp/test/resources")
  97. # test get stt folder
  98. resources = Resources()
  99. resources.stt_folder = '/var/tmp/test/resources'
  100. self.assertEqual(ResourcesManager._get_target_folder(resources, "stt"), "/var/tmp/test/resources")
  101. # test get tts folder
  102. resources = Resources()
  103. resources.tts_folder = '/var/tmp/test/resources'
  104. self.assertEqual(ResourcesManager._get_target_folder(resources, "tts"), "/var/tmp/test/resources")
  105. # test get trigger folder
  106. resources = Resources()
  107. resources.trigger_folder = '/var/tmp/test/resources'
  108. self.assertEqual(ResourcesManager._get_target_folder(resources, "trigger"), "/var/tmp/test/resources")
  109. # test get non existing resource
  110. resources = Resources()
  111. self.assertIsNone(ResourcesManager._get_target_folder(resources, "not_existing"))
  112. def test_check_supported_version(self):
  113. # version ok
  114. current_version = '0.4.0'
  115. supported_version = ['0.4', '0.3', '0.2']
  116. self.assertTrue(ResourcesManager._check_supported_version(current_version=current_version,
  117. supported_versions=supported_version))
  118. # version ok
  119. current_version = '11.23.0'
  120. supported_version = ['11.23', '12.3', '2.23']
  121. self.assertTrue(ResourcesManager._check_supported_version(current_version=current_version,
  122. supported_versions=supported_version))
  123. # version non ok, user does not config
  124. # Testing with integer values instead of string
  125. current_version = '0.4.0'
  126. supported_version = [0.3, 0.2]
  127. with mock.patch('kalliope.Utils.query_yes_no', return_value=True):
  128. self.assertTrue(ResourcesManager._check_supported_version(current_version=current_version,
  129. supported_versions=supported_version))
  130. with mock.patch('kalliope.Utils.query_yes_no', return_value=False):
  131. self.assertFalse(ResourcesManager._check_supported_version(current_version=current_version,
  132. supported_versions=supported_version))