aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside2/tests/QtCore/qbytearray_concatenation_operator_test.py
diff options
context:
space:
mode:
authorBoxiang Sun <daetalusun@gmail.com>2018-05-20 11:04:45 +0800
committerBoxiang Sun <daetalusun@gmail.com>2018-06-01 15:09:19 +0000
commitee8e7117c79f6820cb228e0f0da522ce7d3c1dce (patch)
tree13cd0847be4ff45a80e2457b945f86b9bd9b4a20 /sources/pyside2/tests/QtCore/qbytearray_concatenation_operator_test.py
parentddbd93680730811a5020b4d429c2e3e11d6823e3 (diff)
Improve the QByteArray implementation
The available constructors for QByteArray are now: bytes, bytearray, and QByteArray, unicode is not accepted anymore. Also the concatenation is now possible between QByteArrays. Even though is not possible to initialize a QByteArray with an unicode, we include the possibility to compare it with one (Compatibility with PyQt). The __repr__ and __str__ are now properly working. There seemed to be a confusion regarding data types between Shiboken, Python2 and Python3 related to bytes, so now the structure is based on the flag SBK_BYTES_NAME, which is define as "bytes" for Python3 and "str" for Python2. Many tests were modified to properly handle string, using the `py3kcompat` module. Task-number: PYSIDE-232 Change-Id: I8b671f367c60a0870c72dcbe5662106b3225037d Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'sources/pyside2/tests/QtCore/qbytearray_concatenation_operator_test.py')
-rw-r--r--sources/pyside2/tests/QtCore/qbytearray_concatenation_operator_test.py31
1 files changed, 9 insertions, 22 deletions
diff --git a/sources/pyside2/tests/QtCore/qbytearray_concatenation_operator_test.py b/sources/pyside2/tests/QtCore/qbytearray_concatenation_operator_test.py
index 308143d6d..1728c6823 100644
--- a/sources/pyside2/tests/QtCore/qbytearray_concatenation_operator_test.py
+++ b/sources/pyside2/tests/QtCore/qbytearray_concatenation_operator_test.py
@@ -34,38 +34,25 @@
import unittest
from PySide2.QtCore import QByteArray
+import py3kcompat as py3k
class QByteArrayConcatenationOperatorTest(unittest.TestCase):
'''Test cases for QByteArray concatenation with '+' operator'''
def testConcatQByteArrayAndPythonString(self):
- #Test concatenation of a QByteArray with a Python string, in this order
- qba = QByteArray('foo')
- result = qba + '\x00bar'
+ #Test concatenation of a QByteArray with a Python bytes, in this order
+ qba = QByteArray(py3k.b('foo'))
+ result = qba + py3k.b('\x00bar')
self.assertEqual(type(result), QByteArray)
- self.assertEqual(result, 'foo\x00bar')
+ self.assertEqual(result, py3k.b('foo\x00bar'))
def testConcatPythonStringAndQByteArray(self):
- #Test concatenation of a Python string with a QByteArray, in this order
+ #Test concatenation of a Python bytes with a QByteArray, in this order
concat_python_string_add_qbytearray_worked = True
- qba = QByteArray('foo')
- result = 'bar\x00' + qba
+ qba = QByteArray(py3k.b('foo'))
+ result = py3k.b('bar\x00') + qba
self.assertEqual(type(result), QByteArray)
- self.assertEqual(result, 'bar\x00foo')
-
- # NOTICE: Does not makes sense concat a unicode string with a QByteArray, because the
- # user does not know nothing about the internal representation of the unicode string.
- #def testConcatPythonUnicodeAndQByteArray(self):
- ##Test concatenation of a Python unicode object with a QByteArray, in this order
- #concat_python_unicode_add_qbytearray_worked = True
- #qba = QByteArray('foo')
- #result = None
- #try:
- #result = u'ümlaut' + qba
- #except:
- #concat_python_unicode_add_qbytearray_worked = False
- #self.assertTrue(concat_python_unicode_add_qbytearray_worked)
- #self.assertEqual(result.__class__.__name__, 'unicode')
+ self.assertEqual(result, py3k.b('bar\x00foo'))
if __name__ == '__main__':
unittest.main()