Fix bug 717 - "QByteArray doesn't honor \0 inside strings."

Reviewer: Renato Araújo <renato.filho@openbossa.org>
          Marcelo Lira <marcelo.lira@openbossa.org>
This commit is contained in:
Hugo Parente Lima 2011-04-14 19:56:12 -03:00
commit ea5dd4f257
3 changed files with 80 additions and 17 deletions

View file

@ -12,20 +12,17 @@ class QByteArrayConcatenationOperatorTest(unittest.TestCase):
def testConcatQByteArrayAndPythonString(self):
#Test concatenation of a QByteArray with a Python string, in this order
qba = QByteArray('foo')
result = qba + 'bar'
self.assert_(isinstance(result, QByteArray))
self.assertEqual(result, 'foobar')
# NOTICE: the standard behavior of PyQt is to return a QString object
# for this case. As this is a minor issue the assertion will be left commented.
#self.assertEqual(result.__class__.__name__, 'QString')
result = qba + '\x00bar'
self.assertEqual(type(result), QByteArray)
self.assertEqual(result, 'foo\x00bar')
def testConcatPythonStringAndQByteArray(self):
#Test concatenation of a Python string with a QByteArray, in this order
concat_python_string_add_qbytearray_worked = True
qba = QByteArray('foo')
result = 'bar' + qba
self.assert_(isinstance(result, QByteArray))
self.assertEqual(result, 'barfoo')
result = '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.

View file

@ -152,7 +152,7 @@ class QByteArrayBug720(unittest.TestCase):
def testIt(self):
ba = QByteArray("32\"1\x00123")
self.assertEqual(str(ba), "32\"1\x00123")
self.assertEqual(repr(ba), "PySide.QtCore.QByteArray(\"32\\\"1\x00123\")")
self.assertEqual(repr(ba), "PySide.QtCore.QByteArray('32\"1\\x00123')")
if __name__ == '__main__':