[gedit-plugins/translate] More UT



commit 9d123e269e817389a70a8da345e4ba88d8dea925
Author: Jordi Mas <jmas softcatala org>
Date:   Mon Jul 24 21:17:19 2017 +0200

    More UT

 plugins/translate/tests/testapertium.py          |   26 ++++++++++++++++++++++
 plugins/translate/translate/services/apertium.py |    6 +++++
 2 files changed, 32 insertions(+), 0 deletions(-)
---
diff --git a/plugins/translate/tests/testapertium.py b/plugins/translate/tests/testapertium.py
index 25b882b..3433741 100644
--- a/plugins/translate/tests/testapertium.py
+++ b/plugins/translate/tests/testapertium.py
@@ -21,10 +21,14 @@
 import unittest
 from services.apertium import Apertium
 from unittest.mock import patch, MagicMock
+from unittest.mock import Mock
 
 
 class TestApertium(unittest.TestCase):
 
+    def setUp(self):
+        Apertium._clean_for_ut()
+
     @patch('urllib.request.urlopen')
     def test_translate_text(self, mock_urlopen):
         cm = MagicMock()
@@ -38,6 +42,28 @@ class TestApertium(unittest.TestCase):
         self.assertEqual('Hauries d\'haver-hi rebut una còpia', translated)
         
mock_urlopen.assert_called_with("https://www.apertium.org/apy/translate?langpair=eng|cat&markUnknown=no&q=You+should+have+received+a+copy")
 
+    def test__get_remote_language_names_and_pairs_localized(self):
+        mockObject = Apertium(False)
+        mockObject._get_user_locale = Mock(return_value='ca')
+        mockObject._get_remote_language_pairs = Mock(return_value=[['es'], ['en'], ['es', 'en'], ['es|en']])
+        mockObject._get_remote_language_names = Mock(return_value={'es': 'Espanyol', 'en': 'Anglès'})
+
+        mockObject._get_remote_language_names_and_pairs()
+        self.assertEqual({'en': 'Anglès', 'es': 'Espanyol'}, Apertium.g_locales_names)
+        self.assertEqual(['Espanyol -> Anglès'], Apertium.g_language_names)
+        self.assertEqual(['es|en'], Apertium.g_language_codes)
+
+    def test__get_remote_language_names_and_pairs_non_localized(self):
+        mockObject = Apertium(False)
+        mockObject._get_user_locale = Mock(return_value='ca_ES')
+        mockObject._get_remote_language_pairs = Mock(return_value=[['ca'], ['en'], ['ca', 'en'], ['ca|en']])
+        mockObject._get_remote_language_names = Mock(return_value={'es': 'Espanyol', 'en': 'Anglès'})
+        mockObject._add_missing_locale_names_in_english = Mock(return_value={'ca': 'Català', 'en': 
'English'})
+
+        mockObject._get_remote_language_names_and_pairs()
+        self.assertEqual({'en': 'English', 'ca': 'Català'}, Apertium.g_locales_names)
+        self.assertEqual(['Català -> English'], Apertium.g_language_names)
+        self.assertEqual(['ca|en'], Apertium.g_language_codes)
 
 if __name__ == '__main__':
     unittest.main()
diff --git a/plugins/translate/translate/services/apertium.py 
b/plugins/translate/translate/services/apertium.py
index a75b92a..50b6be7 100644
--- a/plugins/translate/translate/services/apertium.py
+++ b/plugins/translate/translate/services/apertium.py
@@ -45,6 +45,12 @@ class Apertium(Service):
         if init is True:
             self._get_remote_language_names_and_pairs()
 
+    @staticmethod
+    def _clean_for_ut():
+        Apertium.g_language_codes = []
+        Apertium.g_language_names = []
+        Apertium.g_locales_names = {}       
+
     def has_api_key(self):
         return False
     


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]