test_brain_loader.py 3.6 KB

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