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