Przeglądaj źródła

[Tests] #135 add Neurotransmitter tests for callback when audio has been provided by User as an answer

monf 8 lat temu
rodzic
commit
9ea15a9bcb

+ 0 - 1
Tests/test_order_analyser.py

@@ -1,4 +1,3 @@
-import collections
 import unittest
 import mock
 

+ 3 - 1
kalliope/neurons/neurotransmitter/neurotransmitter.py

@@ -40,7 +40,9 @@ class Neurotransmitter(NeuronModule):
             for el in self.from_answer_link:
                 for answer in el["answers"]:
                     if self.is_order_matching(audio, answer):
-                        found = self.run_synapse_by_name_with_order(audio, el["synapse"], order_template=answer)
+                        found = self.run_synapse_by_name_with_order(order=audio,
+                                                                    synapse_name=el["synapse"],
+                                                                    order_template=answer)
             if not found: # the answer do not correspond to any answer. We run the default synapse
                 self.run_synapse_by_name(self.default)
 

+ 57 - 6
kalliope/neurons/neurotransmitter/tests/test_neurotransmitter.py

@@ -1,6 +1,8 @@
 import unittest
 
-from kalliope.core.NeuronModule import MissingParameterException, InvalidParameterException
+from mock import mock
+
+from kalliope.core.NeuronModule import NeuronModule, MissingParameterException, InvalidParameterException
 from kalliope.neurons.neurotransmitter import Neurotransmitter
 
 
@@ -10,18 +12,25 @@ class TestNeurotransmitter(unittest.TestCase):
         self.from_answer_link = [
             {
                 "synapse": "synapse2",
-                "answer": "blabla"
+                "answers": [
+                    "answer one"
+                ]
             },
             {
                 "synapse": "synapse3",
-                "answer": "blablablbla",
-                "answer": "blablblobloa",
+                "answers": [
+                    "answer two",
+                    "answer three"
+                ]
             },
         ]
         self.direct_link = "direct_link"
         self.default = "default"
 
     def testParameters(self):
+        """
+        Testing the Parameters checking
+        """
         def run_test_InvalidParameterException(parameters_to_test):
             with self.assertRaises(InvalidParameterException):
                 Neurotransmitter(**parameters_to_test)
@@ -81,6 +90,48 @@ class TestNeurotransmitter(unittest.TestCase):
         }
         run_test_MissingParameterException(parameters)
 
-
     def testCallback(self):
-        pass
+        """
+        Testing the callback provided when audio has been provided by the User as an answer.
+        """
+        parameters = {
+            "default": self.default,
+            "from_answer_link": self.from_answer_link
+        }
+        with mock.patch.object(NeuronModule, 'get_audio_from_stt', create=True) as mock_get_audio_from_stt:
+            with mock.patch.object(NeuronModule, 'run_synapse_by_name', create=True) as mock_run_synapse_by_name:
+                # testing running the default when no order matching
+                nt = Neurotransmitter(**parameters)
+                mock_get_audio_from_stt.assert_called_once()
+                mock_get_audio_from_stt.reset_mock()
+                # testing running the default when audio None
+                audio_text = None
+                nt.callback(audio=audio_text)
+                mock_run_synapse_by_name.assert_called_once_with(self.default)
+                mock_run_synapse_by_name.reset_mock()
+                # testing running the default when no order matching
+                audio_text = "try test audio "
+                nt.callback(audio=audio_text)
+                mock_run_synapse_by_name.assert_called_once_with(self.default)
+                mock_run_synapse_by_name.reset_mock()
+
+                with mock.patch.object(NeuronModule,
+                                       'run_synapse_by_name_with_order',
+                                       create=True) as mock_run_synapse_by_name_with_order:
+
+                    audio_text="answer one"
+                    nt.callback(audio=audio_text)
+                    mock_run_synapse_by_name_with_order.assert_called_once_with(order=audio_text,
+                                                                                synapse_name="synapse2",
+                                                                                order_template="answer one")
+
+    def testInit(self):
+        """
+        Testing the init method
+        """
+        pass
+
+
+
+
+