testudos.api.signals
testudos.api.signals
Signal subscription: subscribe to Qt signals and read emission count.
Requires an active session and a running AUT. Object can be identified by name (e.g. “primaryButton”) or by address. Signal signature is Qt-style, e.g. “clicked()” or “valueChanged(int)”.
subscribe_to_signal
def subscribe_to_signal(object_id: Union[str, QtObjectProxy], signal_signature: str) -> strSubscribe to a signal on a Qt object. Returns a subscription ID.
Arguments:
object_id- Object name (e.g. “primaryButton”) or address string, or a QtObjectProxy (its object id will be used).signal_signature- Qt signal signature, e.g. “clicked()”.
Returns:
Subscription ID to use with unsubscribe_from_signal and get_signal_emission_count.
unsubscribe_from_signal
def unsubscribe_from_signal(subscription_id: str) -> NoneRemove a signal subscription by ID.
Arguments:
subscription_id- ID returned by subscribe_to_signal().
get_signal_emission_count
def get_signal_emission_count(subscription_id: str) -> intReturn how many times the subscribed signal has been emitted.
Arguments:
subscription_id- ID returned by subscribe_to_signal().
Returns:
Emission count (0 if subscription unknown or never emitted).
wait_for_signal
def wait_for_signal(object_id: Union[str, QtObjectProxy], signal_signature: str, timeout: float = 5, min_count: int = 1, poll_interval: float = 0.1) -> intWait until subscribed signal emission count reaches min_count.
This helper creates a temporary subscription and always unsubscribes it.