Some issues with the byte array binding fixed, less ambiguitites with Qt bindings, tests added.

This commit is contained in:
Matthias Koefferlein
2021-01-24 23:44:40 +01:00
parent 5aac018503
commit d31f87f053
26 changed files with 235 additions and 2324 deletions
+6
View File
@@ -2849,6 +2849,9 @@ class BasicTest(unittest.TestCase):
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 ])
@@ -2859,6 +2862,9 @@ class BasicTest(unittest.TestCase):
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
+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__':