http://www.mediawiki.org/wiki/Special:Code/pywikipedia/8845

Revision: 8845
Author:   valhallasw
Date:     2011-01-16 20:16:01 +0000 (Sun, 16 Jan 2011)
Log Message:
-----------
Added unit tests for i18n functions

Added Paths:
-----------
    branches/rewrite/tests/i18n/
    branches/rewrite/tests/i18n/__init__.py
    branches/rewrite/tests/i18n/test.py
    branches/rewrite/tests/i18n_tests.py

Added: branches/rewrite/tests/i18n/__init__.py
===================================================================
Added: branches/rewrite/tests/i18n/test.py
===================================================================
--- branches/rewrite/tests/i18n/test.py                         (rev 0)
+++ branches/rewrite/tests/i18n/test.py 2011-01-16 20:16:01 UTC (rev 8845)
@@ -0,0 +1,12 @@
+# -*- coding=utf-8 -*-
+msg = {
+        'en': {'test-localized': u'test-localized EN',
+               'test-semi-localized': u'test-semi-localized EN',
+               'test-non-localized': u'test-non-localized EN'
+               },
+        'nl': {'test-localized': u'test-localized NL',
+               'test-semi-localized': u'test-semi-localized NL',
+               },
+        'fy': {'test-localized': u'test-localized FY'},
+        'ja': {'test-no-english': u'test-no-english JA'}
+        }

Added: branches/rewrite/tests/i18n_tests.py
===================================================================
--- branches/rewrite/tests/i18n_tests.py                                (rev 0)
+++ branches/rewrite/tests/i18n_tests.py        2011-01-16 20:16:01 UTC (rev 
8845)
@@ -0,0 +1,92 @@
+# -*- coding: utf-8  -*-
+#
+# (C) Pywikipedia bot team, 2007
+#
+# Distributed under the terms of the MIT license.
+#
+__version__ = '$Id$'
+
+import unittest
+from pywikibot import i18n
+
+class TestTranslate(unittest.TestCase):
+    def setUp(self):
+        self.msg_localized = {'en': u'test-localized EN',
+                              'nl': u'test-localized NL',
+                              'fy': u'test-localized FY'}
+        self.msg_semi_localized = {'en': u'test-semi-localized EN',
+                                   'nl': u'test-semi-localized NL'}
+        self.msg_non_localized = {'en': u'test-non-localized EN'}
+        self.msg_no_english    = {'ja': u'test-no-english JA'}
+
+    def testLocalized(self):
+        self.assertEqual(i18n.translate('en', self.msg_localized),
+                         u'test-localized EN')
+        self.assertEqual(i18n.translate('nl', self.msg_localized),
+                         u'test-localized NL')
+        self.assertEqual(i18n.translate('fy', self.msg_localized),
+                         u'test-localized FY')
+
+    def testSemiLocalized(self):
+        self.assertEqual(i18n.translate('en', self.msg_semi_localized),
+                         u'test-semi-localized EN')
+        self.assertEqual(i18n.translate('nl', self.msg_semi_localized),
+                         u'test-semi-localized NL')
+        self.assertEqual(i18n.translate('fy', self.msg_semi_localized),
+                         u'test-semi-localized NL')
+
+    def testNonLocalized(self):
+        self.assertEqual(i18n.translate('en', self.msg_non_localized),
+                         u'test-non-localized EN')
+        self.assertEqual(i18n.translate('fy', self.msg_non_localized),
+                         u'test-non-localized EN')
+        self.assertEqual(i18n.translate('nl', self.msg_non_localized),
+                         u'test-non-localized EN')
+        self.assertEqual(i18n.translate('ru', self.msg_non_localized),
+                         u'test-non-localized EN')
+    
+    def testNoEnglish(self):
+        self.assertEqual(i18n.translate('en', self.msg_no_english),
+                         u'test-no-english JA')
+        self.assertEqual(i18n.translate('fy', self.msg_no_english),
+                         u'test-no-english JA')
+        self.assertEqual(i18n.translate('nl', self.msg_no_english),
+                         u'test-no-english JA')
+    
+
+class TestTWTranslate(unittest.TestCase):
+    def testLocalized(self):
+        self.assertEqual(i18n.twtranslate('en', 'test-localized'),
+                         u'test-localized EN')
+        self.assertEqual(i18n.twtranslate('nl', 'test-localized'),
+                         u'test-localized NL')
+        self.assertEqual(i18n.twtranslate('fy', 'test-localized'),
+                         u'test-localized FY')
+
+    def testSemiLocalized(self):
+        self.assertEqual(i18n.twtranslate('en', 'test-semi-localized'),
+                         u'test-semi-localized EN')
+        self.assertEqual(i18n.twtranslate('nl', 'test-semi-localized'),
+                         u'test-semi-localized NL')
+        self.assertEqual(i18n.twtranslate('fy', 'test-semi-localized'),
+                         u'test-semi-localized NL')
+
+    def testNonLocalized(self):
+        self.assertEqual(i18n.twtranslate('en', 'test-non-localized'),
+                         u'test-non-localized EN')
+        self.assertEqual(i18n.twtranslate('fy', 'test-non-localized'),
+                         u'test-non-localized EN')
+        self.assertEqual(i18n.twtranslate('nl', 'test-non-localized'),
+                         u'test-non-localized EN')
+        self.assertEqual(i18n.twtranslate('ru', 'test-non-localized'),
+                         u'test-non-localized EN')
+    
+    def testNoEnglish(self):
+        self.assertRaises(i18n.TranslationError, i18n.twtranslate, 'en', 
'test-no-english')
+        
+
+if __name__ == '__main__':
+    try:
+        unittest.main()
+    except SystemExit:
+        pass


_______________________________________________
Pywikipedia-svn mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/pywikipedia-svn

Reply via email to