diff options
Diffstat (limited to 'tests/QtCore/qstring_operator_test.py')
-rw-r--r-- | tests/QtCore/qstring_operator_test.py | 161 |
1 files changed, 161 insertions, 0 deletions
diff --git a/tests/QtCore/qstring_operator_test.py b/tests/QtCore/qstring_operator_test.py new file mode 100644 index 000000000..6d7ae314d --- /dev/null +++ b/tests/QtCore/qstring_operator_test.py @@ -0,0 +1,161 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +'''Test cases for QString operators''' + +import unittest + +from PySide.QtCore import QString, QByteArray + +class QStringOperatorEqual(unittest.TestCase): + '''TestCase for operator QString == QString''' + + def testDefault(self): + #QString() == QString() + obj1 = QString() + obj2 = QString() + self.assertEqual(obj1, obj2) + + def testSimple(self): + #QString(some_string) == QString(some_string) + string = 'egg snakes' + self.assertEqual(QString(string), QString(string)) + + def testUnicode(self): + #QString(unicode) == QString(unicode) + string = u'àâãá' + self.assertEqual(QString(string), QString(string)) + + def testPyString(self): + #QString(string) == string + string = 'my test string' + self.assertEqual(QString(string), string) + self.assertEqual(string, QString(string)) + + def testPyUnicodeString(self): + #QString(unicode) == unicode + string = u'àâãá' + self.assertEqual(QString(string), string) + self.assertEqual(string, unicode(QString(string))) + + def testQByteArray(self): + #QString(string) == QByteArray(string) + string = 'another test string' + self.assertEqual(QString(string), QByteArray(string)) + + +class QStringOperatorAtSetter(unittest.TestCase): + '''Test case for operator QString[] - __setitem__''' + + def testSetterString(self): + '''QString[x] = pythonstring''' + obj = QString('123456') + obj[1] = '0' + self.assertEqual(obj, QString('103456')) + + def testSetterStringLarge(self): + '''QString[x] = pythonstring (larget than 1 char)''' + obj = QString('123456') + obj[3] = 'abba' + self.assertEqual(obj, QString('123abba56')) + + def testSetterQString(self): + '''QString[x] = QString''' + obj = QString('123456') + obj[3] = QString('string') + self.assertEqual(obj, QString('123string56')) + + def testSetterQByteArray(self): + '''QString[x] = qbytearray''' + obj = QString('123456') + obj[3] = QByteArray('array') + self.assertEqual(obj, QString('123array56')) + + +class QStringOperatorAtSetterNegativeIndex(unittest.TestCase): + '''Test case for QString[] - __setitem__ - for negative index''' + + def testSetterNegativeIndex(self): + '''QString[x] = string - negative index''' + obj = QString('123456') + obj[-3] = 'array' + self.assertEqual(obj, QString('123array56')) + + +class QStringOperatorAtSetterLargeIndex(unittest.TestCase): + '''Test case for QString[] - __setitem__ - for 'overflown' index''' + + def testSetterLargeIndexEmpty(self): + '''QString[x] = somestring - Overflow index on empty string''' + # should pad with spaces if the index is larger + obj = QString('') + obj[2] = 'a' + self.assertEqual(obj, QString(' a')) + + def testSetterLargeIndexNormal(self): + '''QString[x] = somestring - Overflow index on normal string''' + # should pad with spaces if the index is larger + obj = QString('mystring') + obj[10] = 'normal' + self.assertEqual(obj, QString('mystring normal')) + + +class QStringOperatorAt(unittest.TestCase): + '''TestCase for operator QString[] - __getitem__''' + + def testInRange(self): + #QString[x] where x is a valid index + string = 'abcdefgh' + obj = QString(string) + + for i in range(len(string)): + self.assertEqual(obj[i], string[i]) + + def testInRangeReverse(self): + #QString[x] where x is a valid index (reverse order) + string = 'abcdefgh' + obj = QString(string) + + for i in range(len(string)-1, 0, -1): + self.assertEqual(obj[i], string[i]) + + + def testInRangeUnicode(self): + #QString[x] where x is a valid index (unicode) + string = u'àâãá' + obj = QString(string) + + for i in range(len(string)): + self.assertEqual(obj[i], string[i]) + + def testInRangeUnicodeReverse(self): + #QString[x] where x is a valid index (unicode) (reverse order) + string = u'àâãá' + obj = QString(string) + + for i in range(len(string)-1, 0, -1): + self.assertEqual(obj[i], string[i]) + + def testOutOfRange(self): + #QString[x] where x is out of index + string = '1234567' + obj = QString(string) + self.assertRaises(IndexError, lambda :obj[len(string)]) + + def testReturnQString(self): + #QString[x] must return a QString + string = QString('123456') + data = string[0] + self.assert_(isinstance(data, QString)) + +class QStringOperatorAdd(unittest.TestCase): + '''TestCase for operator QString[]''' + + def testOperatorAdd(self): + str1 = '123' + str2 = QString('456') + self.assertEquals('123456', str1 + str2) + self.assertEquals('456123', str2 + str1) + + +if __name__ == '__main__': + unittest.main() |