simvx.core.testing.recorder

TestRecorder – records user input and generates replayable test scripts.

Module Contents

Classes

RecordedEvent

A single recorded input event.

TestRecorder

Records user input events and generates replayable test scripts.

Data

API

simvx.core.testing.recorder.log[source]

‘getLogger(…)’

simvx.core.testing.recorder.__all__

[‘RecordedEvent’, ‘TestRecorder’]

class simvx.core.testing.recorder.RecordedEvent[source]

A single recorded input event.

timestamp: float

None

event_type: str

None

x: float

0.0

y: float

0.0

button: int

0

key: str = <Multiline-String>
char: str = <Multiline-String>
target_path: str = <Multiline-String>
class simvx.core.testing.recorder.TestRecorder(format: str = 'harness', **kwargs)[source]

Bases: simvx.core.node.Node

Records user input events and generates replayable test scripts.

Attach to a scene to record interactions. Call stop_recording() to get Python source code that replays the session using UITestHarness, DemoRunner steps, or raw InputSimulator API.

Toggle with F9 or programmatically via start/stop_recording().

Initialization

format: str

‘harness’

start_recording() None[source]

Start capturing input events.

stop_recording() str[source]

Stop recording and return generated test code in the current format.

save_recording(path: pathlib.Path, format: str | None = None) None[source]

Save recorded script to a file.

property is_recording: bool
property event_count: int
record_event(event: simvx.core.testing.recorder.RecordedEvent) None[source]

Manually inject a recorded event (for testing the recorder itself).

process(dt: float) None[source]
strict_errors: ClassVar[bool]

True

script_error_raised

‘Signal(…)’

classmethod __init_subclass__(**kwargs)
property name: str
property process_mode: simvx.core.descriptors.ProcessMode
reset_error() None
add_child(node: simvx.core.node.Node) simvx.core.node.Node
remove_child(node: simvx.core.node.Node)
reparent(new_parent: simvx.core.node.Node)
get_node(path: str) simvx.core.node.Node
find_child(name: str, recursive: bool = False) simvx.core.node.Node | None
find(node_type: type, recursive: bool = True) simvx.core.node.Node | None
find_all(node_type: type, recursive: bool = True) list
property path: str
add_to_group(group: str)
remove_from_group(group: str)
is_in_group(group: str) bool
ready() None
enter_tree() None
exit_tree() None
physics_process(dt: float) None
draw(renderer) None
input_event(event: simvx.core.events.InputEvent) None
input(event: simvx.core.events.TreeInputEvent) None
unhandled_input(event: simvx.core.events.TreeInputEvent) None
start_coroutine(gen: simvx.core.descriptors.Coroutine) simvx.core.descriptors.CoroutineHandle
stop_coroutine(gen_or_handle)
clear_children()
destroy()
property app
property tree: simvx.core.scene_tree.SceneTree
get_tree() simvx.core.scene_tree.SceneTree
__getitem__(key: str)
classmethod get_properties() dict[str, simvx.core.descriptors.Property]
__repr__()