Files

41 lines
1.1 KiB
Python
Raw Permalink Normal View History

"""Tests for native viewer custom action dispatch."""
from __future__ import annotations
from unittest.mock import MagicMock
from mjlab.viewer.base import ViewerAction
from mjlab.viewer.native.viewer import NativeMujocoViewer
def _make_viewer(num_envs: int = 3) -> NativeMujocoViewer:
env = MagicMock()
env.cfg.viewer.env_idx = 0
env.unwrapped.num_envs = num_envs
return NativeMujocoViewer(env, MagicMock())
def test_toggle_actions_dispatch_by_action_enum():
v = _make_viewer()
assert not v._show_plots
assert v._handle_custom_action(ViewerAction.TOGGLE_PLOTS, None)
assert v._show_plots
assert v._show_debug_vis
assert v._handle_custom_action(ViewerAction.TOGGLE_DEBUG_VIS, None)
assert not v._show_debug_vis
assert not v._show_all_envs
assert v._handle_custom_action(ViewerAction.TOGGLE_SHOW_ALL_ENVS, None)
assert v._show_all_envs
def test_prev_next_env_actions_wrap_and_succeed():
v = _make_viewer(num_envs=3)
v.env_idx = 0
assert v._handle_custom_action(ViewerAction.PREV_ENV, None)
assert v.env_idx == 2
assert v._handle_custom_action(ViewerAction.NEXT_ENV, None)
assert v.env_idx == 0