- 
          
 - 
                Notifications
    
You must be signed in to change notification settings  - Fork 69
 
Description
Problem description
I am having troubles with understanding how to use the functionality qtbot.waitSignal. I followed the documentation but there must be something I am missing.
It seems that a direct call to the emit method of a given signal does not trigger a block with qtbot.waitSignal(... to validate.
I found the problem by testing my application, checking if a button was sending a signal, and noted that the waitSignal was always hitting the timeout. I extracted what I think is a bug, but might be to my very new discovery of signals and slots.
What I expected / what I get
in a file test_sample.py:
from PySide.QtCore import QObject, Signal
class Simple(QObject):
    signal = Signal()
def test_Qt(qtbot):
    simple = Simple()
    with qtbot.waitSignal(simple.signal, timeout=1000) as waiting:
        simple.signal.emit()
    assert waiting.signal_triggeredRunning py.test on this file results in an AssertionError, because waiting.signal_triggered is False. I expected the emit method to cause waiting to see the signal being emitted.
Possible things I might do wrong
Since I am new to this signal/slot business, I might be overlooking some essential facts.
- As a zen master would ask, is the signal truly fired if no slot is there to listen to it?
 - Could it be that it is that slow to fire a signal?
 - Is the 
emitcode somehow placed at the wrong spot? 
Thank you for enlightening me, and thanks for sharing such a useful work, by the way. Testing GUI applications without this would be a massive pain.
Configuration
I am using Python 2.7.5, pytest 1.4.24, and PySide 1.2.2, on a Linux Mint 16.