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@lists.wikimedia.org