From 44998fd471927efb8c7a55e5bd7b81bad9f6e876 Mon Sep 17 00:00:00 2001 From: Hugo Parente Lima Date: Fri, 4 Feb 2011 18:24:07 -0200 Subject: Fix 666 - "QByteArray does not support slices" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewer: Renato Araújo Marcelo Lira --- PySide/QtCore/typesystem_core.xml | 11 +++++++++++ tests/QtCore/qbytearray_test.py | 9 +++++++++ 2 files changed, 20 insertions(+) diff --git a/PySide/QtCore/typesystem_core.xml b/PySide/QtCore/typesystem_core.xml index 8e292cf18..0cc5b2f4c 100644 --- a/PySide/QtCore/typesystem_core.xml +++ b/PySide/QtCore/typesystem_core.xml @@ -1811,6 +1811,17 @@ return !result ? -1 : 0; + + + Py_ssize_t max = %CPPSELF.count(); + _i1 = qBound(Py_ssize_t(0), _i1, max); + _i2 = qBound(Py_ssize_t(0), _i2, max); + + if (_i1 >= _i2) + return %CONVERTTOPYTHON[QByteArray](QByteArray()); + return %CONVERTTOPYTHON[QByteArray](%CPPSELF.mid(_i1, _i2 - _i1)); + + diff --git a/tests/QtCore/qbytearray_test.py b/tests/QtCore/qbytearray_test.py index 396545f4e..fa838c19f 100644 --- a/tests/QtCore/qbytearray_test.py +++ b/tests/QtCore/qbytearray_test.py @@ -105,6 +105,15 @@ class QByteArrayOnQVariant(unittest.TestCase): a = QSettings().value("some_prop", QByteArray()) self.assertEqual(type(a), QByteArray) +class TestBug666(unittest.TestCase): + '''QByteArray does not support slices''' + def testIt(self): + ba = QByteArray('1234567890') + self.assertEqual(ba[2:4], '34') + self.assertEqual(ba[:4], '1234') + self.assertEqual(ba[4:], '567890') + self.assertEqual(len(ba[4:1]), 0) + class QByteArrayBug514(unittest.TestCase): def testIt(self): data = "foobar" -- cgit v1.2.3