diff options
Diffstat (limited to 'tests/QtCore/translation_test.py')
-rw-r--r-- | tests/QtCore/translation_test.py | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/tests/QtCore/translation_test.py b/tests/QtCore/translation_test.py new file mode 100644 index 000000000..870c8c50f --- /dev/null +++ b/tests/QtCore/translation_test.py @@ -0,0 +1,62 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +'''Unit tests to test QTranslator and translation in general.''' + +import os +import unittest +from PySide.QtCore import QObject, QTranslator, QCoreApplication, QString + +from helper import UsesQCoreApplication + +class TranslationTest(UsesQCoreApplication): + '''Test case for Qt translation facilities.''' + + def setUp(self): + super(TranslationTest, self).setUp() + self.trdir = os.path.join(os.path.dirname(__file__), 'translations') + # os.system is probably not the best way to do it + os.system('lrelease %s/*.ts > /dev/null' % self.trdir) + + def tearDown(self): + os.system('rm %s/*.qm > /dev/null' % self.trdir) + super(TranslationTest, self).tearDown() + + def testLatin(self): + #Set string value to Latin + translator = QTranslator() + translator.load(os.path.join(self.trdir, 'trans_latin.qm')) + self.app.installTranslator(translator) + + obj = QObject() + obj.setObjectName(obj.tr('Hello World!')) + self.assertEqual(obj.objectName(), u'Orbis, te saluto!') + + def testRussian(self): + #Set string value to Russian + translator = QTranslator() + translator.load(os.path.join(self.trdir, 'trans_russian.qm')) + self.app.installTranslator(translator) + + obj = QObject() + obj.setObjectName(obj.tr('Hello World!')) + self.assertEqual(obj.objectName(), u'привет мир!') + + def testUtf8(self): + translator = QTranslator() + translator.load(os.path.join(self.trdir, 'trans_russian.qm')) + self.app.installTranslator(translator) + + obj = QObject() + obj.setObjectName(obj.trUtf8('Hello World!')) + self.assertEqual(obj.objectName(), u'привет мир!') + + def testTranslateWithNoneDisambiguation(self): + value = 'String here' + obj = QCoreApplication.translate('context', value, None, QCoreApplication.UnicodeUTF8) + self.assert_(isinstance(obj, QString)) + self.assertEqual(obj, value) + +if __name__ == '__main__': + unittest.main() + |