diff options
author | Boxiang Sun <daetalusun@gmail.com> | 2018-05-20 11:04:45 +0800 |
---|---|---|
committer | Boxiang Sun <daetalusun@gmail.com> | 2018-06-01 15:09:19 +0000 |
commit | ee8e7117c79f6820cb228e0f0da522ce7d3c1dce (patch) | |
tree | 13cd0847be4ff45a80e2457b945f86b9bd9b4a20 /sources/pyside2/tests/QtCore/qbytearray_concatenation_operator_test.py | |
parent | ddbd93680730811a5020b4d429c2e3e11d6823e3 (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.py | 31 |
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() |