Merge pull request #710 from KLayout/byte-arrays

Byte arrays
This commit is contained in:
Matthias Köfferlein
2021-01-27 12:42:48 +01:00
committed by GitHub
37 changed files with 1059 additions and 2433 deletions
+2 -2
View File
@@ -34,9 +34,9 @@ class BasicTest(unittest.TestCase):
b = QtCore.QBuffer()
b.setData("all you can eat")
b.open(QtCore.QIODevice.ReadOnly)
self.assertEqual(b.read(3), "all")
self.assertEqual(b.read(3), b"all")
b.read(1)
self.assertEqual(b.read(3), "you")
self.assertEqual(b.read(3), b"you")
# run unit tests
if __name__ == '__main__':
+1 -1
View File
@@ -31,7 +31,7 @@ class BasicTest(unittest.TestCase):
def test_2(self):
q = QtNetwork.QNetworkRequest()
q.setRawHeader("abc", "xyz")
self.assertEqual(q.rawHeader("abc"), "xyz")
self.assertEqual(q.rawHeader("abc"), b"xyz")
# run unit tests
if __name__ == '__main__':
+30
View File
@@ -2837,6 +2837,36 @@ class BasicTest(unittest.TestCase):
self.assertEqual(sc.got_s0a, 0)
self.assertEqual(sc.got_s0b, 0)
def test_74(self):
# binary strings
qba = pya.A.ia_cref_to_qba([ 17, 42, 0, 8 ])
self.assertEqual(repr(qba), "b'\\x11*\\x00\\x08'")
self.assertEqual(pya.A.qba_to_ia(qba), [ 17, 42, 0, 8 ])
self.assertEqual(pya.A.qba_cref_to_ia(qba), [ 17, 42, 0, 8 ])
self.assertEqual(pya.A.qba_cptr_to_ia(qba), [ 17, 42, 0, 8 ])
self.assertEqual(pya.A.qba_ref_to_ia(qba), [ 17, 42, 0, 8 ])
self.assertEqual(pya.A.qba_ptr_to_ia(qba), [ 17, 42, 0, 8 ])
qba = pya.A.ia_cref_to_qba_cref([ 17, 42, 0, 8 ])
self.assertEqual(repr(qba), "b'\\x11*\\x00\\x08'")
self.assertEqual(pya.A.qba_to_ia(b'\x00\x01\x02'), [ 0, 1, 2 ])
ba = pya.A.ia_cref_to_ba([ 17, 42, 0, 8 ])
self.assertEqual(repr(ba), "b'\\x11*\\x00\\x08'")
self.assertEqual(pya.A.ba_to_ia(ba), [ 17, 42, 0, 8 ])
self.assertEqual(pya.A.ba_cref_to_ia(ba), [ 17, 42, 0, 8 ])
self.assertEqual(pya.A.ba_cptr_to_ia(ba), [ 17, 42, 0, 8 ])
self.assertEqual(pya.A.ba_ref_to_ia(ba), [ 17, 42, 0, 8 ])
self.assertEqual(pya.A.ba_ptr_to_ia(ba), [ 17, 42, 0, 8 ])
ba = pya.A.ia_cref_to_ba_cref([ 17, 42, 0, 8 ])
self.assertEqual(repr(ba), "b'\\x11*\\x00\\x08'")
self.assertEqual(pya.A.ba_to_ia(b'\x00\x01\x02'), [ 0, 1, 2 ])
# Custom factory implemented in Python
def test_80(self):
gc = pya.GObject.g_inst_count()
+39 -2
View File
@@ -487,12 +487,12 @@ class QtBindingTest(unittest.TestCase):
slm = MyStandardItemModel()
rn = slm.roleNames()
self.assertEqual(map2str(rn), "{0: display, 1: decoration, 2: edit, 3: toolTip, 4: statusTip, 5: whatsThis}")
self.assertEqual(map2str(rn), "{0: b'display', 1: b'decoration', 2: b'edit', 3: b'toolTip', 4: b'statusTip', 5: b'whatsThis'}")
rnNew = slm.roleNames()
rnNew[7] = "blabla"
slm.srn(rnNew)
rn = slm.roleNames()
self.assertEqual(map2str(rn), "{0: display, 1: decoration, 2: edit, 3: toolTip, 4: statusTip, 5: whatsThis, 7: blabla}")
self.assertEqual(map2str(rn), "{0: b'display', 1: b'decoration', 2: b'edit', 3: b'toolTip', 4: b'statusTip', 5: b'whatsThis', 7: b'blabla'}")
def test_44(self):
@@ -586,6 +586,43 @@ class QtBindingTest(unittest.TestCase):
b.emit_clicked(False)
self.assertEqual(trigger_log, "+-xx")
def test_51(self):
# issue #707 (QJsonValue constructor ambiguous)
if "QJsonValue" in pya.__dict__:
v = pya.QJsonValue("hello")
self.assertEqual(v.toString(), "hello")
self.assertEqual(v.toVariant(), "hello")
self.assertEqual(v.toInt(), 0)
v = pya.QJsonValue(17)
self.assertEqual(v.toString(), "")
self.assertEqual(v.toVariant(), 17)
self.assertEqual(v.toInt(), 17)
v = pya.QJsonValue(2.5)
self.assertEqual(v.toString(), "")
self.assertEqual(v.toVariant(), 2.5)
self.assertEqual(v.toDouble(), 2.5)
v = pya.QJsonValue(True)
self.assertEqual(v.toString(), "")
self.assertEqual(v.toVariant(), True)
self.assertEqual(v.toBool(), True)
def test_52(self):
# issue #708 (Image serialization to QByteArray)
img = pya.QImage(10, 10, pya.QImage.Format_Mono)
img.fill(0)
buf = pya.QBuffer()
img.save(buf, "PNG")
self.assertEqual(len(buf.data) > 100, True)
self.assertEqual(buf.data[0:8], b'\x89PNG\r\n\x1a\n')
# run unit tests
if __name__ == '__main__':
+32
View File
@@ -2778,6 +2778,38 @@ class Basic_TestClass < TestBase
end
def test_74
# binary strings
qba = RBA::A::ia_cref_to_qba([ 17, 42, 0, 8 ])
assert_equal(qba.inspect, "\"\\x11*\\x00\\b\"")
assert_equal(RBA::A::qba_to_ia(qba), [ 17, 42, 0, 8 ])
assert_equal(RBA::A::qba_cref_to_ia(qba), [ 17, 42, 0, 8 ])
assert_equal(RBA::A::qba_cptr_to_ia(qba), [ 17, 42, 0, 8 ])
assert_equal(RBA::A::qba_ref_to_ia(qba), [ 17, 42, 0, 8 ])
assert_equal(RBA::A::qba_ptr_to_ia(qba), [ 17, 42, 0, 8 ])
qba = RBA::A::ia_cref_to_qba_cref([ 17, 42, 0, 8 ])
assert_equal(qba.inspect, "\"\\x11*\\x00\\b\"")
assert_equal(RBA::A::qba_to_ia("\x00\x01\x02"), [ 0, 1, 2 ])
ba = RBA::A::ia_cref_to_ba([ 17, 42, 0, 8 ])
assert_equal(ba.inspect, "\"\\x11*\\x00\\b\"")
assert_equal(RBA::A::ba_to_ia(ba), [ 17, 42, 0, 8 ])
assert_equal(RBA::A::ba_cref_to_ia(ba), [ 17, 42, 0, 8 ])
assert_equal(RBA::A::ba_cptr_to_ia(ba), [ 17, 42, 0, 8 ])
assert_equal(RBA::A::ba_ref_to_ia(ba), [ 17, 42, 0, 8 ])
assert_equal(RBA::A::ba_ptr_to_ia(ba), [ 17, 42, 0, 8 ])
ba = RBA::A::ia_cref_to_ba_cref([ 17, 42, 0, 8 ])
assert_equal(ba.inspect, "\"\\x11*\\x00\\b\"")
assert_equal(RBA::A::ba_to_ia("\x00\x01\x02"), [ 0, 1, 2 ])
end
# Custom factory implemented in Ruby
def test_80
+43
View File
@@ -701,6 +701,49 @@ class QtBinding_TestClass < TestBase
end
def test_51
# issue #707 (QJsonValue constructor ambiguous)
if RBA.const_defined?("QJsonValue")
v = RBA::QJsonValue::new("hello")
assert_equal(v.toString, "hello")
assert_equal(v.toVariant, "hello")
assert_equal(v.toInt, 0)
v = RBA::QJsonValue::new(17)
assert_equal(v.toString, "")
assert_equal(v.toVariant, 17)
assert_equal(v.toInt, 17)
v = RBA::QJsonValue::new(2.5)
assert_equal(v.toString, "")
assert_equal(v.toVariant, 2.5)
assert_equal(v.toDouble, 2.5)
v = RBA::QJsonValue::new(true)
assert_equal(v.toString, "")
assert_equal(v.toVariant, true)
assert_equal(v.toBool, true)
end
end
def test_52
# issue #708 (Image serialization to QByteArray)
img = RBA::QImage::new(10, 10, RBA::QImage::Format_Mono)
img.fill(0)
buf = RBA::QBuffer::new
img.save(buf, "PNG")
assert_equal(buf.data.size > 100, true)
assert_equal(buf.data[0..7].inspect, "\"\\x89PNG\\r\\n\\x1A\\n\"")
end
end
load("test_epilogue.rb")