traits_futures.wx.event_loop_helper module

Test support, providing the ability to run the event loop from tests.

class traits_futures.wx.event_loop_helper.AppForTesting(*args: Any, **kwargs: Any)[source]

Bases: App

Subclass of wx.App used for testing.

OnInit()[source]

Override base class to ensure we have at least one window.

close()[source]

Clean up when the object is no longer needed.

exit(exit_code)[source]

Exit the application main event loop with a given exit code.

The event loop can be started and stopped several times for a single AppForTesting object.

class traits_futures.wx.event_loop_helper.AttributeSetter(*args: Any, **kwargs: Any)[source]

Bases: EvtHandler

Event handler that allows us to set object attributes from with a running event loop.

class traits_futures.wx.event_loop_helper.EventLoopHelper[source]

Bases: object

Support for running the wx event loop in unit tests.

dispose()[source]

Dispose of any resources used by this object.

init()[source]

Prepare the event loop for use.

run_until(object, trait, condition, timeout)[source]

Run event loop until the given condition holds true, or until timeout.

The condition is re-evaluated, with the object as argument, every time the trait changes.

Parameters
  • object (traits.has_traits.HasTraits) – Object whose trait we monitor.

  • trait (str) – Name of the trait to monitor for changes.

  • condition – Single-argument callable, returning a boolean. This will be called with object as the only input.

  • timeout (float) – Number of seconds to allow before timing out with an exception.

Raises

RuntimeError – If timeout is reached, regardless of whether the condition is true or not at that point.

setattr_soon(obj, name, value)[source]

Arrange for an attribute to be set once the event loop is running.

In typical usage, obj will be a HasTraits instance and name will be the name of a trait on obj.

This method is not thread-safe. It’s designed to be called from the main thread.

Parameters
  • obj (object) – Object to set the given attribute on.

  • name (str) – Name of the attribute to set; typically this is a traited attribute.

  • value (object) – Value to set the attribute to.

class traits_futures.wx.event_loop_helper.TimeoutTimer(*args: Any, **kwargs: Any)[source]

Bases: Timer

Single-shot timer that executes a given callback on completion.

Parameters
  • timeout (float) – Timeout in seconds.

  • callback – Callable taking no arguments, to be executed when the timer times out.

  • args (tuple, optional) – Tuple of positional arguments to pass to the callable. If not provided, no positional arguments are passed.

  • kwargs (dict, optional) – Dictionary of keyword arguments to pass to the callable. If not provided, no keyword arguments are passed.

Notify()[source]

Execute the callback when the timer completes.

start()[source]

Start the timer.

stop()[source]

Stop the timer if it hasn’t already expired. The callback will not be executed.