aboutsummaryrefslogtreecommitdiffstats
path: root/tests/QtCore/qstring_operator_test.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/QtCore/qstring_operator_test.py')
-rw-r--r--tests/QtCore/qstring_operator_test.py161
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()