123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- import os
- import unittest
- from kalliope.core.Models import Singleton
- from kalliope.core.ConfigurationManager import BrainLoader
- from kalliope.core.Models import Event
- from kalliope.core.Models import Neuron
- from kalliope.core.Models import Synapse
- from kalliope.core.Models import Order
- from kalliope.core.Models.Brain import Brain
- class TestBrainLoader(unittest.TestCase):
- def setUp(self):
- self.brain_to_test = os.getcwd() + os.sep + "Tests/brains/brain_test.yml"
- self.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'}
- ]
- def tearDown(self):
- Singleton._instances = {}
- def test_get_yaml_config(self):
- """
- Test we can get a yaml config from the path
- """
- brain_loader = BrainLoader(file_path=self.brain_to_test)
- self.assertEqual(brain_loader.yaml_config, self.expected_result)
- def test_get_brain(self):
- """
- Test the class return a valid brain object
- """
- 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="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]
- brain = Brain()
- brain.synapses = synapses
- brain.brain_file = self.brain_to_test
- brain.brain_yaml = self.expected_result
- brain_loader = BrainLoader(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(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(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(hour="7")
- dict_order = {'order': 'test_order'}
- dict_event = {'event': {'hour': '7'}}
- bl = BrainLoader(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)
- def test_singleton(self):
- bl1 = BrainLoader(file_path=self.brain_to_test)
- bl2 = BrainLoader(file_path=self.brain_to_test)
- self.assertTrue(bl1.brain is bl2.brain)
- if __name__ == '__main__':
- unittest.main()
|