diff options
author | Lauro Neto <lauro.neto@openbossa.org> | 2010-01-27 14:20:22 -0300 |
---|---|---|
committer | Hugo Lima <hugo.lima@openbossa.org> | 2010-02-02 18:19:28 -0200 |
commit | 5e0169fe506aafe246029acd6f90ecef054fc074 (patch) | |
tree | 4fd2b32cd46af0195ccd80dbcd217eedce812a7f /tests | |
parent | 2cee6b6fca0c9b4188b7fb10643f77a719b792fc (diff) |
Adding tests and fixing QString __setitem__ and []
Instead of calling replace, using remove/insert, as
there's no way of replacing only 1 char at a given position
by another string directly.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/qtcore/qstring_operator_test.py | 59 |
1 files changed, 58 insertions, 1 deletions
diff --git a/tests/qtcore/qstring_operator_test.py b/tests/qtcore/qstring_operator_test.py index 0174fdbce..6d7ae314d 100644 --- a/tests/qtcore/qstring_operator_test.py +++ b/tests/qtcore/qstring_operator_test.py @@ -42,8 +42,65 @@ class QStringOperatorEqual(unittest.TestCase): 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[]''' + '''TestCase for operator QString[] - __getitem__''' def testInRange(self): #QString[x] where x is a valid index |