GSI: enabling enums as hash keys and int(enum) in Python

This commit is contained in:
Matthias Koefferlein
2023-03-26 17:52:33 +02:00
parent 1ac8ad0739
commit fa61f96194
5 changed files with 146 additions and 1 deletions
+18
View File
@@ -696,6 +696,12 @@ class QtBindingTest(unittest.TestCase):
# The various ways to refer to enums
self.assertEqual(pya.Qt.MouseButton(4).to_i(), 4)
self.assertEqual(pya.Qt_MouseButton(4).to_i(), 4)
self.assertEqual(pya.Qt_MouseButton(4).__int__(), 4)
self.assertEqual(pya.Qt_MouseButton(4).__hash__(), 4)
self.assertEqual(int(pya.Qt_MouseButton(4)), 4)
self.assertEqual(str(pya.Qt_MouseButton(4)), "MiddleButton")
self.assertEqual(pya.Qt.MouseButton.LeftButton.to_i(), 1)
self.assertEqual(pya.Qt_MouseButton.LeftButton.to_i(), 1)
self.assertEqual(pya.Qt.LeftButton.to_i(), 1)
@@ -706,6 +712,18 @@ class QtBindingTest(unittest.TestCase):
self.assertEqual((pya.Qt.LeftButton | pya.Qt.RightButton).to_i(), 3)
self.assertEqual(type(pya.Qt.LeftButton | pya.Qt.RightButton).__name__, "Qt_QFlags_MouseButton")
def test_59(self):
# Enums can act as hash keys
h = {}
h[pya.Qt.MouseButton.LeftButton] = "left"
h[pya.Qt.MouseButton.RightButton] = "right"
self.assertEqual(pya.Qt.MouseButton.LeftButton in h, True)
self.assertEqual(h[pya.Qt.MouseButton.LeftButton], "left")
self.assertEqual(h[pya.Qt.MouseButton.RightButton], "right")
self.assertEqual(pya.Qt.MouseButton.MiddleButton in h, False)
# run unit tests
if __name__ == '__main__':
suite = unittest.TestLoader().loadTestsFromTestCase(QtBindingTest)