Browse Source

add tests for ConfigurationChecker class

nico 8 years ago
parent
commit
09543b76e7
1 changed files with 109 additions and 0 deletions
  1. 109 0
      core/Tests/test_configuration_checker.py

+ 109 - 0
core/Tests/test_configuration_checker.py

@@ -0,0 +1,109 @@
+import unittest
+
+from core.ConfigurationManager.ConfigurationChecker import ConfigurationChecker, NoSynapeName, NoSynapeNeurons, \
+    NoSynapeSignals, NoValidSignal, NoEventPeriod, NoValidOrder, MultipleSameSynapseName
+from core.Models import Synapse
+from core.Utils import ModuleNotFoundError
+
+
+class TestConfigurationChecker(unittest.TestCase):
+    """
+    Class used to test the ConfigurationChecker class
+    """
+
+    def setUp(self):
+        pass
+
+    def test_check_synape_dict(self):
+        valid_synapse_dict = {
+            'signals': [{'order': 'test_order'}],
+            'neurons': [{'say': {'message': ['test message']}}],
+            'name': 'test'
+        }
+
+        synapse_dict_without_name = {
+            'signals': [{'order': 'test_order'}],
+            'neurons': [{'say': {'message': ['test message']}}]
+        }
+
+        synapse_dict_without_neurons = {
+            'signals': [{'order': 'test_order'}],
+            'name': 'test'
+        }
+
+        synapse_dict_without_signals = {
+            'neurons': [{'say': {'message': ['test message']}}],
+            'name': 'test'
+        }
+
+        self.assertTrue(ConfigurationChecker.check_synape_dict(valid_synapse_dict))
+
+        with self.assertRaises(NoSynapeName):
+            ConfigurationChecker.check_synape_dict(synapse_dict_without_name)
+
+        with self.assertRaises(NoSynapeNeurons):
+            ConfigurationChecker.check_synape_dict(synapse_dict_without_neurons)
+
+        with self.assertRaises(NoSynapeSignals):
+            ConfigurationChecker.check_synape_dict(synapse_dict_without_signals)
+
+    def test_check_neuron_dict(self):
+        valid_neuron = {'say': {'message': ['test message']}}
+        invalid_neuron = {'not_existing_neuron': {'message': ['test message']}}
+
+        self.assertTrue(ConfigurationChecker.check_neuron_dict(valid_neuron))
+
+        with self.assertRaises(ModuleNotFoundError):
+            ConfigurationChecker.check_neuron_dict(invalid_neuron)
+
+    def test_check_signal_dict(self):
+        valid_signal_with_order = {'order': 'test_order'}
+        valid_signal_with_event = {'event': '0 * * * *'}
+        invalid_signal = {'invalid_option': 'test_order'}
+
+        self.assertTrue(ConfigurationChecker.check_signal_dict(valid_signal_with_order))
+        self.assertTrue(ConfigurationChecker.check_signal_dict(valid_signal_with_event))
+
+        with self.assertRaises(NoValidSignal):
+            ConfigurationChecker.check_signal_dict(invalid_signal)
+
+    def test_check_event_dict(self):
+        valid_event = {'event': '0 * * * *'}
+        invalid_event = {'event': None}
+        invalid_event2 = {'event': ""}
+
+        self.assertTrue(ConfigurationChecker.check_event_dict(valid_event))
+
+        with self.assertRaises(NoEventPeriod):
+            ConfigurationChecker.check_event_dict(invalid_event)
+        with self.assertRaises(NoEventPeriod):
+            ConfigurationChecker.check_event_dict(invalid_event2)
+
+    def test_check_order_dict(self):
+        valid_order = 'test_order'
+        invalid_order = ''
+        invalid_order2 = None
+
+        self.assertTrue(ConfigurationChecker.check_order_dict(valid_order))
+
+        with self.assertRaises(NoValidOrder):
+            ConfigurationChecker.check_order_dict(invalid_order)
+        with self.assertRaises(NoValidOrder):
+            ConfigurationChecker.check_order_dict(invalid_order2)
+
+    def test_check_synapes(self):
+        synapse_1 = Synapse(name="test")
+        synapse_2 = Synapse(name="test2")
+        synapse_3 = Synapse(name="test")
+
+        valid_synapse_list = [synapse_1, synapse_2]
+        invalid_synapse_list = [synapse_1, synapse_3]
+
+        self.assertTrue(ConfigurationChecker.check_synapes(valid_synapse_list))
+
+        with self.assertRaises(MultipleSameSynapseName):
+            ConfigurationChecker.check_synapes(invalid_synapse_list)
+
+
+if __name__ == '__main__':
+    unittest.main()