Skip to content

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) -> str

Subscribe 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) -> None

Remove 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) -> int

Return 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) -> int

Wait until subscribed signal emission count reaches min_count.

This helper creates a temporary subscription and always unsubscribes it.