test_synapse_launcher.py 3.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. import unittest
  2. import mock
  3. from kalliope.core.Models import Brain
  4. from kalliope.core.Models.Settings import Settings
  5. from kalliope.core.SynapseLauncher import SynapseLauncher, SynapseNameNotFound
  6. from kalliope.core.Models import Neuron
  7. from kalliope.core.Models import Order
  8. from kalliope.core.Models import Synapse
  9. class TestSynapseLauncher(unittest.TestCase):
  10. """
  11. Test the class SynapseLauncher
  12. """
  13. def setUp(self):
  14. # Init
  15. neuron1 = Neuron(name='neurone1', parameters={'var1': 'val1'})
  16. neuron2 = Neuron(name='neurone2', parameters={'var2': 'val2'})
  17. neuron3 = Neuron(name='neurone3', parameters={'var3': 'val3'})
  18. neuron4 = Neuron(name='neurone4', parameters={'var4': 'val4'})
  19. signal1 = Order(sentence="this is the sentence")
  20. signal2 = Order(sentence="this is the second sentence")
  21. signal3 = Order(sentence="that is part of the third sentence")
  22. self.synapse1 = Synapse(name="Synapse1", neurons=[neuron1, neuron2], signals=[signal1])
  23. self.synapse2 = Synapse(name="Synapse2", neurons=[neuron3, neuron4], signals=[signal2])
  24. self.synapse3 = Synapse(name="Synapse3", neurons=[neuron2, neuron4], signals=[signal3])
  25. all_synapse_list = [self.synapse1,
  26. self.synapse2,
  27. self.synapse3]
  28. self.brain_test = Brain(synapses=all_synapse_list)
  29. self.settings_test = Settings(default_synapse="Synapse3")
  30. def test_run_matching_synapse_or_default(self):
  31. # test_match_synapse1
  32. with mock.patch("kalliope.core.NeuronLauncher.start_neuron_list"):
  33. order_to_match = "this is the sentence"
  34. expected_result = [self.synapse1]
  35. self.assertEqual(expected_result,
  36. SynapseLauncher.run_matching_synapse_or_default(order_to_match,
  37. brain=self.brain_test,
  38. settings=self.settings_test))
  39. # test_match_synapse1_and_2
  40. with mock.patch("kalliope.core.NeuronLauncher.start_neuron_list"):
  41. order_to_match = "this is the second sentence"
  42. expected_result = [self.synapse1, self.synapse2]
  43. self.assertEqual(expected_result,
  44. SynapseLauncher.run_matching_synapse_or_default(order_to_match,
  45. brain=self.brain_test,
  46. settings=self.settings_test))
  47. # test_match_default_synapse
  48. with mock.patch("kalliope.core.NeuronLauncher.start_neuron"):
  49. order_to_match = "this is an invalid order"
  50. expected_result = [self.synapse3]
  51. self.assertEqual(expected_result,
  52. SynapseLauncher.run_matching_synapse_or_default(order_to_match,
  53. brain=self.brain_test,
  54. settings=self.settings_test))
  55. def test_start_synapse(self):
  56. with mock.patch("kalliope.core.NeuronLauncher.start_neuron"):
  57. expected_result = self.synapse1
  58. self.assertEqual(expected_result,
  59. SynapseLauncher.start_synapse("Synapse1", brain=self.brain_test))
  60. with self.assertRaises(SynapseNameNotFound):
  61. SynapseLauncher.start_synapse(name="no_do_exist", brain=self.brain_test)