test_brain_loader.py 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. import unittest
  2. from core.ConfigurationManager import BrainLoader
  3. from core.Models import Brain
  4. from core.Models import Event
  5. from core.Models import Neuron
  6. from core.Models import Order
  7. from core.Models import Synapse
  8. class TestBrainLoader(unittest.TestCase):
  9. def setUp(self):
  10. self.brain_to_test = "core/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. def test_get_brain(self):
  30. """
  31. Test the class return a valid brain object
  32. """
  33. neuron = Neuron(name='say', parameters={'message': ['test message']})
  34. signal1 = Order(sentence="test_order")
  35. signal2 = Order(sentence="test_order_2")
  36. signal3 = Order(sentence="test_order_3")
  37. synapse1 = Synapse(name="test", neurons=[neuron], signals=[signal1])
  38. synapse2 = Synapse(name="test2", neurons=[neuron], signals=[signal2])
  39. synapse3 = Synapse(name="test3", neurons=[neuron], signals=[signal3])
  40. synapses = [synapse1, synapse2, synapse3]
  41. brain = Brain()
  42. brain.synapses = synapses
  43. brain.brain_file = self.brain_to_test
  44. brain.brain_yaml = self.expected_result
  45. brain_loader = BrainLoader.Instance(file_path=self.brain_to_test)
  46. self.assertEqual(brain, brain_loader.brain)
  47. def test_get_neurons(self):
  48. neuron_list = [{'say': {'message': ['test message']}}]
  49. neuron = Neuron(name='say', parameters={'message': ['test message']})
  50. bl = BrainLoader.Instance(file_path=self.brain_to_test)
  51. neurons_from_brain_loader = bl._get_neurons(neuron_list)
  52. self.assertEqual([neuron], neurons_from_brain_loader)
  53. def test_get_signals(self):
  54. signals = [{'order': 'test_order'}]
  55. signal = Order(sentence='test_order')
  56. bl = BrainLoader.Instance(file_path=self.brain_to_test)
  57. signals_from_brain_loader = bl._get_signals(signals)
  58. self.assertEqual([signal], signals_from_brain_loader)
  59. def test_get_event_or_order_from_dict(self):
  60. order_object = Order(sentence="test_order")
  61. event_object = Event(period="0 7 * * *")
  62. dict_order = {'order': 'test_order'}
  63. dict_event = {'event': '0 7 * * *'}
  64. bl = BrainLoader.Instance(file_path=self.brain_to_test)
  65. order_from_bl = bl._get_event_or_order_from_dict(dict_order)
  66. event_from_bl = bl._get_event_or_order_from_dict(dict_event)
  67. self.assertEqual(order_from_bl, order_object)
  68. self.assertEqual(event_from_bl, event_object)
  69. if __name__ == '__main__':
  70. unittest.main()