|
@@ -2,6 +2,7 @@ import unittest
|
|
|
|
|
|
from core.ConfigurationManager import BrainLoader
|
|
|
from core.Models import Brain
|
|
|
+from core.Models import Event
|
|
|
from core.Models import Neuron
|
|
|
from core.Models import Order
|
|
|
from core.Models import Synapse
|
|
@@ -9,9 +10,9 @@ from core.Models import Synapse
|
|
|
|
|
|
class TestBrainLoader(unittest.TestCase):
|
|
|
|
|
|
- def test_get_yaml_config(self):
|
|
|
- brain_to_test = "core/Tests/brains/brain_test.yml"
|
|
|
- expected_result = [
|
|
|
+ def setUp(self):
|
|
|
+ self.brain_to_test = "core/Tests/brains/brain_test.yml"
|
|
|
+ self.expected_result = [
|
|
|
{'signals': [{'order': 'test_order'}],
|
|
|
'neurons': [{'say': {'message': ['test message']}}],
|
|
|
'name': 'test'},
|
|
@@ -24,46 +25,71 @@ class TestBrainLoader(unittest.TestCase):
|
|
|
'name': 'test3'}
|
|
|
]
|
|
|
|
|
|
- self.assertEqual(BrainLoader.get_yaml_config(brain_to_test), expected_result)
|
|
|
+ def test_get_yaml_config(self):
|
|
|
+ """
|
|
|
+ Test we can get a yaml config from the path
|
|
|
+ """
|
|
|
+ brain_loader = BrainLoader.Instance(file_path=self.brain_to_test)
|
|
|
+ self.assertEqual(brain_loader.yaml_config, self.expected_result)
|
|
|
|
|
|
def test_get_brain(self):
|
|
|
- brain_to_test = "core/Tests/brains/brain_test.yml"
|
|
|
+ """
|
|
|
+ Test the class return a valid brain object
|
|
|
+ """
|
|
|
|
|
|
- neuron1 = Neuron(name='say', parameters={'message': 'test message'})
|
|
|
- neuron2 = Neuron(name='say', parameters={'message': 'test message'})
|
|
|
- neuron3 = Neuron(name='say', parameters={'message': 'test message'})
|
|
|
+ neuron = Neuron(name='say', parameters={'message': ['test message']})
|
|
|
|
|
|
signal1 = Order(sentence="test_order")
|
|
|
signal2 = Order(sentence="test_order_2")
|
|
|
signal3 = Order(sentence="test_order_3")
|
|
|
|
|
|
- synapse1 = Synapse(name="Synapse1", neurons=[neuron1], signals={signal1})
|
|
|
- synapse2 = Synapse(name="Synapse2", neurons=[neuron2], signals={signal2})
|
|
|
- synapse3 = Synapse(name="Synapse3", neurons=[neuron3], signals={signal3})
|
|
|
+ synapse1 = Synapse(name="test", neurons=[neuron], signals=[signal1])
|
|
|
+ synapse2 = Synapse(name="test2", neurons=[neuron], signals=[signal2])
|
|
|
+ synapse3 = Synapse(name="test3", neurons=[neuron], signals=[signal3])
|
|
|
synapses = [synapse1, synapse2, synapse3]
|
|
|
|
|
|
- expected_result = [
|
|
|
- {'signals': [{'order': 'test_order'}],
|
|
|
- 'neurons': [{'say': {'message': ['test message']}}],
|
|
|
- 'name': 'test'},
|
|
|
- {'signals': [{'order': 'test_order_2'}],
|
|
|
- 'neurons': [{'say': {'message': ['test message']}}],
|
|
|
- 'name': 'test2'},
|
|
|
- {'includes': ['included_brain_test.yml']},
|
|
|
- {'signals': [{'order': 'test_order_3'}],
|
|
|
- 'neurons': [{'say': {'message': ['test message']}}],
|
|
|
- 'name': 'test3'}
|
|
|
- ]
|
|
|
-
|
|
|
brain = Brain()
|
|
|
brain.synapses = synapses
|
|
|
- brain.brain_file = brain_to_test
|
|
|
- brain.brain_yaml = expected_result
|
|
|
- brain.is_loaded = False
|
|
|
+ brain.brain_file = self.brain_to_test
|
|
|
+ brain.brain_yaml = self.expected_result
|
|
|
+
|
|
|
+ brain_loader = BrainLoader.Instance(file_path=self.brain_to_test)
|
|
|
+ self.assertEqual(brain, brain_loader.brain)
|
|
|
+
|
|
|
+ def test_get_neurons(self):
|
|
|
+ neuron_list = [{'say': {'message': ['test message']}}]
|
|
|
+
|
|
|
+ neuron = Neuron(name='say', parameters={'message': ['test message']})
|
|
|
+
|
|
|
+ bl = BrainLoader.Instance(file_path=self.brain_to_test)
|
|
|
+ neurons_from_brain_loader = bl._get_neurons(neuron_list)
|
|
|
+
|
|
|
+ self.assertEqual([neuron], neurons_from_brain_loader)
|
|
|
+
|
|
|
+ def test_get_signals(self):
|
|
|
+ signals = [{'order': 'test_order'}]
|
|
|
+
|
|
|
+ signal = Order(sentence='test_order')
|
|
|
+
|
|
|
+ bl = BrainLoader.Instance(file_path=self.brain_to_test)
|
|
|
+ signals_from_brain_loader = bl._get_signals(signals)
|
|
|
+
|
|
|
+ self.assertEqual([signal], signals_from_brain_loader)
|
|
|
+
|
|
|
+ def test_get_event_or_order_from_dict(self):
|
|
|
+
|
|
|
+ order_object = Order(sentence="test_order")
|
|
|
+ event_object = Event(period="0 7 * * *")
|
|
|
+
|
|
|
+ dict_order = {'order': 'test_order'}
|
|
|
+ dict_event = {'event': '0 7 * * *'}
|
|
|
|
|
|
- # TODO this is not working. how to test a singleton?
|
|
|
- self.assertEqual(brain, BrainLoader.get_brain(file_path=brain_to_test))
|
|
|
+ bl = BrainLoader.Instance(file_path=self.brain_to_test)
|
|
|
+ order_from_bl = bl._get_event_or_order_from_dict(dict_order)
|
|
|
+ event_from_bl = bl._get_event_or_order_from_dict(dict_event)
|
|
|
|
|
|
+ self.assertEqual(order_from_bl, order_object)
|
|
|
+ self.assertEqual(event_from_bl, event_object)
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|