You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
First, thanks for this test package, it's a life-saver.
I've been using it for some time now. I just want to simulate pressing of "Enter" on a QLineEdit (for example). There don't seem to be many examples of this kind of thing out there.
In the documentation here we see that something like keyPress or keyEvent is said to be static. (By the way that page appears to list keyPress twice, for no particular reason).
I am currently experimenting with this by going qtbot.keyEvent(...). This appears to work OK. But if that method is static, shouldn't I be using the class instead? If I try qtbot.__class__.keyEvent(...) I get this error:
AttributeError: type object 'MagicMock' has no attribute 'keyEvent'
Also, as a general rule, which should I be using, keyPress or keyEvent? Or doesn't it matter.
The text was updated successfully, but these errors were encountered:
Looks like they have been marked as such ever since they were introduced some 11 years ago in de0b795.
While they are originally static in Qt (on the QTest object), that doesn't really translate over to pytest-qt. There, qtbot.keyEvent(...) is indeed the proper way to use them. Maybe the signatures were just copied 1:1 from PyQt/PySide at the time, and this was an oversight?
As an aside, if you get AttributeError: type object 'MagicMock' has no attribute 'keyEvent', you're dealing with something from unittest.mock and not the qtbot object. It sounds like you might be using the @unittest.mock.patch decorator incorrectly, and would recommend you use pytest-mock instead, and use its mocker fixture, to avoid this kind of subtle issue.
As for keyPress / keyEvent: keyPress(...) is just a shorthand to say keyEvent(QTest.KeyAction.Press, ...).
First, thanks for this test package, it's a life-saver.
I've been using it for some time now. I just want to simulate pressing of "Enter" on a QLineEdit (for example). There don't seem to be many examples of this kind of thing out there.
In the documentation here we see that something like
keyPress
orkeyEvent
is said to bestatic
. (By the way that page appears to listkeyPress
twice, for no particular reason).I am currently experimenting with this by going
qtbot.keyEvent(...)
. This appears to work OK. But if that method isstatic
, shouldn't I be using the class instead? If I tryqtbot.__class__.keyEvent(...)
I get this error:Also, as a general rule, which should I be using,
keyPress
orkeyEvent
? Or doesn't it matter.The text was updated successfully, but these errors were encountered: