Browse Source

[Refacto] Add encoding method + test

monf 7 years ago
parent
commit
85d581c41b

+ 11 - 0
Tests/test_utils.py

@@ -223,3 +223,14 @@ class TestUtils(unittest.TestCase):
         self.assertEqual(Utils.remove_spaces_in_brackets(sentence=sentence),
                          expected_result,
                          "Fail to remove spaces in two brackets")
+
+    def test_encode_text_utf8(self):
+        """
+        Test encoding the text in utf8
+        """
+        sentence = "kâllìöpé"
+        sentence = sentence.decode('utf8')
+        expected_sentence = "kâllìöpé"
+
+        self.assertEqual(Utils.encode_text_utf8(text=sentence),
+                         expected_sentence)

+ 4 - 4
kalliope/core/Models/APIResponse.py

@@ -1,4 +1,5 @@
-import sys
+from kalliope.core.Utils import Utils
+
 
 class APIResponse(object):
 
@@ -16,9 +17,8 @@ class APIResponse(object):
         :return: A dict of name and parameters
         :rtype: Dict
         """
-        if sys.version_info[0] < 3:
-            if isinstance(self.user_order, unicode):
-                self.user_order = self.user_order.encode("utf-8")
+
+        self.user_order = Utils.encode_text_utf8(self.user_order)
         return {
             'user_order': self.user_order,
             'matched_synapses': [e.serialize() for e in self.list_processed_matched_synapse],

+ 1 - 3
kalliope/core/NeuronLauncher.py

@@ -73,9 +73,7 @@ class NeuronLauncher:
                 # check that the parameter to replace is available in the loaded_parameters dict
                 if cls._neuron_parameters_are_available_in_loaded_parameters(neuron_parameters, loaded_parameters):
                     neuron_parameters = jinja2.Template(neuron_parameters).render(loaded_parameters)
-                    if sys.version_info[0] < 3:
-                        if isinstance(neuron_parameters, unicode):
-                            neuron_parameters = neuron_parameters.encode("utf-8")
+                    neuron_parameters = Utils.encode_text_utf8(neuron_parameters)
                     return str(neuron_parameters)
                 else:
                     raise NeuronParameterNotAvailable

+ 1 - 3
kalliope/core/NeuronModule.py

@@ -113,9 +113,7 @@ class NeuronModule(object):
         :return: A dict of name and parameters
         :rtype: Dict
         """
-        if sys.version_info[0] < 3:
-            if isinstance(self.tts_message, unicode):
-                self.tts_message = self.tts_message.encode("utf-8")
+        self.tts_message = Utils.encode_text_utf8(self.tts_message)
         return {
             'neuron_name': self.neuron_name,
             'generated_message': self.tts_message

+ 13 - 3
kalliope/core/Utils/Utils.py

@@ -11,9 +11,7 @@ logger = logging.getLogger("kalliope")
 
 
 def pipe_print(line):
-    if sys.version_info[0] < 3:
-        if isinstance(line, unicode):
-            line = line.encode('utf-8')
+    line = Utils.encode_text_utf8(line)
     print(line)
 
 
@@ -290,3 +288,15 @@ class Utils(object):
         ite = list_to_check.__iter__()
         next(ite, None)
         return next(ite, None)
+
+    ##################
+    #
+    # Encoding
+    #
+    #########
+    @staticmethod
+    def encode_text_utf8(text):
+        if sys.version_info[0] < 3:
+            if isinstance(text, unicode):
+                text = text.encode("utf-8")
+        return text