test_brain_loader.py 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. import unittest
  2. from core.ConfigurationManager import BrainLoader
  3. from core.Models import Brain
  4. from core.Models import Neuron
  5. from core.Models import Order
  6. from core.Models import Synapse
  7. class TestBrainLoader(unittest.TestCase):
  8. def test_get_yaml_config(self):
  9. brain_to_test = "core/Tests/brains/brain_test.yml"
  10. expected_result = [
  11. {'signals': [{'order': 'test_order'}],
  12. 'neurons': [{'say': {'message': ['test message']}}],
  13. 'name': 'test'},
  14. {'signals': [{'order': 'test_order_2'}],
  15. 'neurons': [{'say': {'message': ['test message']}}],
  16. 'name': 'test2'},
  17. {'includes': ['included_brain_test.yml']},
  18. {'signals': [{'order': 'test_order_3'}],
  19. 'neurons': [{'say': {'message': ['test message']}}],
  20. 'name': 'test3'}
  21. ]
  22. self.assertEqual(BrainLoader.get_yaml_config(brain_to_test), expected_result)
  23. def test_get_brain(self):
  24. brain_to_test = "core/Tests/brains/brain_test.yml"
  25. neuron1 = Neuron(name='say', parameters={'message': 'test message'})
  26. neuron2 = Neuron(name='say', parameters={'message': 'test message'})
  27. neuron3 = Neuron(name='say', parameters={'message': 'test message'})
  28. signal1 = Order(sentence="test_order")
  29. signal2 = Order(sentence="test_order_2")
  30. signal3 = Order(sentence="test_order_3")
  31. synapse1 = Synapse(name="Synapse1", neurons=[neuron1], signals={signal1})
  32. synapse2 = Synapse(name="Synapse2", neurons=[neuron2], signals={signal2})
  33. synapse3 = Synapse(name="Synapse3", neurons=[neuron3], signals={signal3})
  34. synapses = [synapse1, synapse2, synapse3]
  35. expected_result = [
  36. {'signals': [{'order': 'test_order'}],
  37. 'neurons': [{'say': {'message': ['test message']}}],
  38. 'name': 'test'},
  39. {'signals': [{'order': 'test_order_2'}],
  40. 'neurons': [{'say': {'message': ['test message']}}],
  41. 'name': 'test2'},
  42. {'includes': ['included_brain_test.yml']},
  43. {'signals': [{'order': 'test_order_3'}],
  44. 'neurons': [{'say': {'message': ['test message']}}],
  45. 'name': 'test3'}
  46. ]
  47. brain = Brain()
  48. brain.synapses = synapses
  49. brain.brain_file = brain_to_test
  50. brain.brain_yaml = expected_result
  51. brain.is_loaded = False
  52. # TODO this is not working. how to test a singleton?
  53. self.assertEqual(brain, BrainLoader.get_brain(file_path=brain_to_test))
  54. if __name__ == '__main__':
  55. unittest.main()