test_brain_loader.py 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. import unittest
  2. from kalliope.core.ConfigurationManager import BrainLoader
  3. from kalliope.core.Models import Event
  4. from kalliope.core.Models import Neuron
  5. from kalliope.core.Models import Synapse
  6. from kalliope.core.Models import Order
  7. from kalliope.core.Models.Brain import Brain
  8. class TestBrainLoader(unittest.TestCase):
  9. def setUp(self):
  10. self.brain_to_test = "../Tests/brains/brain_test.yml"
  11. self.expected_result = [
  12. {'signals': [{'order': 'test_order'}],
  13. 'neurons': [{'say': {'message': ['test message']}}],
  14. 'name': 'test'},
  15. {'signals': [{'order': 'test_order_2'}],
  16. 'neurons': [{'say': {'message': ['test message']}}],
  17. 'name': 'test2'},
  18. {'includes': ['included_brain_test.yml']},
  19. {'signals': [{'order': 'test_order_3'}],
  20. 'neurons': [{'say': {'message': ['test message']}}],
  21. 'name': 'test3'}
  22. ]
  23. # def test_get_yaml_config(self):
  24. # """
  25. # Test we can get a yaml config from the path
  26. # """
  27. # brain_loader = BrainLoader.Instance(file_path=self.brain_to_test)
  28. # self.assertEqual(brain_loader.yaml_config, self.expected_result)
  29. # del brain_loader
  30. #
  31. # def test_get_brain(self):
  32. # """
  33. # Test the class return a valid brain object
  34. # """
  35. #
  36. # neuron = Neuron(name='say', parameters={'message': ['test message']})
  37. #
  38. # signal1 = Order(sentence="test_order")
  39. # signal2 = Order(sentence="test_order_2")
  40. # signal3 = Order(sentence="test_order_3")
  41. #
  42. # synapse1 = Synapse(name="test", neurons=[neuron], signals=[signal1])
  43. # synapse2 = Synapse(name="test2", neurons=[neuron], signals=[signal2])
  44. # synapse3 = Synapse(name="test3", neurons=[neuron], signals=[signal3])
  45. # synapses = [synapse1, synapse2, synapse3]
  46. #
  47. # brain = Brain()
  48. # brain.synapses = synapses
  49. # brain.brain_file = self.brain_to_test
  50. # brain.brain_yaml = self.expected_result
  51. #
  52. # brain_loader = BrainLoader.Instance(file_path=self.brain_to_test)
  53. # self.assertEqual(brain, brain_loader.brain)
  54. # del brain_loader
  55. def test_get_neurons(self):
  56. neuron_list = [{'say': {'message': ['test message']}}]
  57. neuron = Neuron(name='say', parameters={'message': ['test message']})
  58. bl = BrainLoader.Instance(file_path=self.brain_to_test)
  59. neurons_from_brain_loader = bl._get_neurons(neuron_list)
  60. self.assertEqual([neuron], neurons_from_brain_loader)
  61. del bl
  62. def test_get_signals(self):
  63. signals = [{'order': 'test_order'}]
  64. signal = Order(sentence='test_order')
  65. bl = BrainLoader.Instance(file_path=self.brain_to_test)
  66. signals_from_brain_loader = bl._get_signals(signals)
  67. self.assertEqual([signal], signals_from_brain_loader)
  68. del bl
  69. def test_get_event_or_order_from_dict(self):
  70. order_object = Order(sentence="test_order")
  71. event_object = Event(period="0 7 * * *")
  72. dict_order = {'order': 'test_order'}
  73. dict_event = {'event': '0 7 * * *'}
  74. bl = BrainLoader.Instance(file_path=self.brain_to_test)
  75. order_from_bl = bl._get_event_or_order_from_dict(dict_order)
  76. event_from_bl = bl._get_event_or_order_from_dict(dict_event)
  77. self.assertEqual(order_from_bl, order_object)
  78. self.assertEqual(event_from_bl, event_object)
  79. del bl
  80. def test_singleton(self):
  81. bl1 = BrainLoader.Instance(file_path=self.brain_to_test)
  82. bl2 = BrainLoader.Instance(file_path=self.brain_to_test)
  83. self.assertTrue(bl1.brain is bl2.brain)
  84. del bl1
  85. del bl2
  86. if __name__ == '__main__':
  87. unittest.main()