diff options
Diffstat (limited to 'sources/pyside2/tests/QtCore/qbytearray_test.py')
-rw-r--r-- | sources/pyside2/tests/QtCore/qbytearray_test.py | 195 |
1 files changed, 133 insertions, 62 deletions
diff --git a/sources/pyside2/tests/QtCore/qbytearray_test.py b/sources/pyside2/tests/QtCore/qbytearray_test.py index 672472c42..dba9ecfea 100644 --- a/sources/pyside2/tests/QtCore/qbytearray_test.py +++ b/sources/pyside2/tests/QtCore/qbytearray_test.py @@ -1,4 +1,5 @@ -#!/usr/bin/python +# -*- coding:utf-8 -*- +# !/usr/bin/python ############################################################################# ## @@ -35,24 +36,24 @@ import ctypes import pickle import py3kcompat as py3k -from PySide2.QtCore import QByteArray, QSettings, QObject +from PySide2.QtCore import QByteArray, QSettings, QObject, QDataStream, QIODevice class QByteArrayTestToNumber(unittest.TestCase): def testToNumberInt(self): - obj = QByteArray('37') + obj = QByteArray(py3k.b('37')) self.assertEqual((37, True), obj.toInt()) def testToNumberUShort(self): - obj = QByteArray('37') + obj = QByteArray(py3k.b('37')) self.assertEqual((37, True), obj.toUShort()) def testToNumberFloat(self): - obj = QByteArray('37.109') + obj = QByteArray(py3k.b('37.109')) self.assertEqual((ctypes.c_float(37.109).value, True), obj.toFloat()) def testToNumberDouble(self): - obj = QByteArray('37.109') + obj = QByteArray(py3k.b('37.109')) self.assertEqual((ctypes.c_double(37.109).value, True), obj.toDouble()) @@ -69,9 +70,9 @@ class QByteArrayTestToNumber(unittest.TestCase): def testAppend(self): b = QByteArray() - b.append("A") + b.append(py3k.b("A")) self.assertEqual(b.size(), 1) - b.append("AB") + b.append(py3k.b("AB")) self.assertEqual(b.size(), 3) @@ -80,7 +81,7 @@ class QByteArraySplit(unittest.TestCase): def testPathSeparator(self): #QByteArray.split('/') - obj = QByteArray(unittest.__file__) + obj = QByteArray(py3k.b(unittest.__file__)) self.assertEqual(obj.split('/'), unittest.__file__.split('/')) class QByteArrayData(unittest.TestCase): @@ -88,11 +89,11 @@ class QByteArrayData(unittest.TestCase): '''Test case for QByteArray.data''' def testData(self): - url = QByteArray("http://web.openbossa.org/") - self.assertEqual(url.data(), py3k.b("http://web.openbossa.org/")) + url = QByteArray(py3k.b("http://pyside.org")) + self.assertEqual(url.data(), py3k.b("http://pyside.org")) def testDataWithZeros(self): - s1 = "123\000321" + s1 = py3k.b("123\000321") ba = QByteArray(s1) s2 = ba.data() self.assertEqual(py3k.b(s1), s2) @@ -103,49 +104,31 @@ class QByteArrayOperatorAtSetter(unittest.TestCase): def testSetterString(self): '''QByteArray[x] = pythonstring''' - obj = QByteArray('123456') - obj[1] = '0' - self.assertEqual(obj, QByteArray('103456')) - - def testSetterStringLarge(self): - '''QByteArray[x] = pythonstring (larget than 1 char)''' - obj = QByteArray('123456') - obj[3] = 'abba' - self.assertEqual(obj, QByteArray('123abba56')) - - def testSetterQByteArray(self): - '''QByteArray[x] = qbytearray''' - obj = QByteArray('123456') - obj[3] = QByteArray('array') - self.assertEqual(obj, QByteArray('123array56')) - - -class QByteArrayOperatorAtSetterNegativeIndex(unittest.TestCase): - '''Test case for QByteArray[] - __setitem__ - for negative index''' - - def testSetterNegativeIndex(self): - '''QByteArray[x] = string - negative index''' - obj = QByteArray('123456') - obj[-3] = 'array' - self.assertEqual(obj, QByteArray('123array56')) - - -class QByteArrayOperatorAtSetterLargeIndex(unittest.TestCase): - '''Test case for QByteArray[] - __setitem__ - for 'overflown' index''' - - def testSetterLargeIndexEmpty(self): - '''QByteArray[x] = somestring - Overflow index on empty string''' - # should pad with spaces if the index is larger - obj = QByteArray('') - obj[2] = 'a' - self.assertEqual(obj, QByteArray(' a')) - - def testSetterLargeIndexNormal(self): - '''QByteArray[x] = somestring - Overflow index on normal string''' - # should pad with spaces if the index is larger - obj = QByteArray('mystring') - obj[10] = 'normal' - self.assertEqual(obj, QByteArray('mystring normal')) + obj = QByteArray(py3k.b('123456')) + obj[1] = py3k.b('0') + self.assertEqual(obj, QByteArray(py3k.b('103456'))) + +class QByteArrayOnQDataStream(unittest.TestCase): + ''' + Bug PYSIDE-232 + ''' + def testIt(self): + a = QByteArray() + b = QDataStream(a, QIODevice.WriteOnly) + b.writeUInt16(5000) + # The __repr__ not suppose to crash anymore + self.assertNotEqual(repr(b), None) + +class TestBug664(unittest.TestCase): + ''' + QByteArray.data() should return correct data + ''' + def testIt(self): + a = QByteArray(py3k.unicode_('hi 猫').encode('utf-8')) + if py3k.IS_PY3K: + self.assertEqual(repr(a), "PySide2.QtCore.QByteArray(b'hi \\xe7\\x8c\\xab')") + else: + self.assertEqual(repr(a), "PySide2.QtCore.QByteArray('hi \\xe7\\x8c\\xab')") class QByteArrayOnQVariant(unittest.TestCase): def testQByteArrayOnQVariant(self): @@ -157,7 +140,7 @@ class TestBug567(unittest.TestCase): QByteArray should support slices ''' def testIt(self): - ba = QByteArray('1234567890') + ba = QByteArray(py3k.b('1234567890')) self.assertEqual(ba[2:4], '34') self.assertEqual(ba[:4], '1234') self.assertEqual(ba[4:], '567890') @@ -176,24 +159,112 @@ class QByteArrayBug514(unittest.TestCase): class TestPickler(unittest.TestCase): def testIt(self): - ba = QByteArray("321\x00123") + ba = QByteArray(py3k.b("321\x00123")) output = pickle.dumps(str(ba)) ba2 = pickle.loads(output) - self.assertEqual(ba, ba2) + self.assertEqual(str(ba), str(ba2)) class QByteArrayBug720(unittest.TestCase): def testIt(self): - ba = QByteArray(b"32\"1\x00123") - self.assertEqual(str(ba), "32\"1\x00123") - self.assertEqual(repr(ba), "PySide2.QtCore.QByteArray('32\"1\x00123')") + ba = QByteArray(py3k.b("32\"1\x00123")) + self.assertEqual(str(ba), str(py3k.b("32\"1\x00123"))) + if py3k.IS_PY3K: + self.assertEqual(repr(ba), "PySide2.QtCore.QByteArray(b'32\"1\\x00123')") + else: + self.assertEqual(repr(ba), "PySide2.QtCore.QByteArray('32\"1\\x00123')") class QByteArrayImplicitConvert(unittest.TestCase): def testString(self): # No implicit conversions from QByteArray to python string - ba = QByteArray("object name") + ba = QByteArray(py3k.b("object name")) obj = QObject() self.assertRaises(TypeError, obj.setObjectName, ba) +class QByteArraySliceAssignment(unittest.TestCase): + def testIndexAssignment(self): + a = QByteArray(py3k.b('abc')) + a[0] = py3k.b('x') + self.assertEqual(a[0], py3k.b('x')) + + def test_1(): + a[0] = py3k.b('xy') + self.assertRaises(ValueError, test_1) + + def testSliceAssignmentBytes(self): + b = QByteArray(py3k.b('0123456789')) + b[2:8] = py3k.b('abcdef') + self.assertEqual(b[2:8], py3k.b('abcdef')) + # Delete behavior + b[2:8] = None + self.assertEqual(b, py3k.b('0189')) + + # number of slots and number of values doesn't match + def test_2(): + b[2:8:2] = py3k.b('') + self.assertRaises(ValueError, test_2) + b = QByteArray(py3k.b('0123456789')) + # reverse slice + b[5:2:-1] = py3k.b('ABC') + self.assertEqual(b, py3k.b('012CBA6789')) + # step is not 1 + b[2:9:3] = py3k.b('XYZ') + self.assertEqual(b, py3k.b('01XCBY67Z9')) + b = QByteArray(py3k.b('0123456789')) + b[9:2:-3] = py3k.b('XYZ') + self.assertEqual(b, py3k.b('012Z45Y78X')) + + def testSliceAssignmentQByteArray(self): + b = QByteArray(py3k.b('0123456789')) + b[2:8] = QByteArray(py3k.b('abcdef')) + self.assertEqual(b[2:8], py3k.b('abcdef')) + # shrink + b[2:8] = QByteArray(py3k.b('aaa')) + self.assertEqual(b, py3k.b('01aaa89')) + # expanse + b[2:5] = QByteArray(py3k.b('uvwxyz')) + self.assertEqual(b, py3k.b('01uvwxyz89')) + # Delete behavior + b[2:8] = QByteArray() + self.assertEqual(b, py3k.b('0189')) + + b = QByteArray(py3k.b('0123456789')) + # reverse assginment + b[5:2:-1] = QByteArray(py3k.b('ABC')) + self.assertEqual(b, py3k.b('012CBA6789')) + # step is not 1 + b[2:9:3] = QByteArray(py3k.b('XYZ')) + self.assertEqual(b, py3k.b('01XCBY67Z9')) + b = QByteArray(py3k.b('0123456789')) + b[9:2:-3] = QByteArray(py3k.b('XYZ')) + self.assertEqual(b, py3k.b('012Z45Y78X')) + + def testSliceAssignmentByteArray(self): + b = QByteArray(py3k.b('0123456789')) + # replace + b[2:8] = bytearray(py3k.b('abcdef')) + self.assertEqual(b[2:8], py3k.b('abcdef')) + # shrink + b[2:8] = bytearray(py3k.b('aaa')) + self.assertEqual(b, py3k.b('01aaa89')) + # expanse + b[2:5] = bytearray(py3k.b('uvwxyz')) + self.assertEqual(b, py3k.b('01uvwxyz89')) + # Delete behavior + b[2:8] = bytearray(py3k.b('')) + self.assertEqual(b, py3k.b('0189')) + + b = QByteArray(py3k.b('0123456789')) + # reverse assginment + b[5:2:-1] = bytearray(py3k.b('ABC')) + self.assertEqual(b, py3k.b('012CBA6789')) + # step is not 1 + b[2:9:3] = bytearray(py3k.b('XYZ')) + self.assertEqual(b, py3k.b('01XCBY67Z9')) + b = QByteArray(py3k.b('0123456789')) + b[9:2:-3] = bytearray(py3k.b('XYZ')) + self.assertEqual(b, py3k.b('012Z45Y78X')) + + if __name__ == '__main__': unittest.main() |