"""Verifies right-click-on-player toggles play/pause, and that Load File moved from a button into a File menu action. mpv owns its own native child window for the embedded video surface, so a real mouse click there never reaches Qt's mousePressEvent at all -- the right-click binding is registered through mpv's own input system instead (see player_widget.py). To exercise that actual code path headlessly, this drives mpv's own `keypress` command (which simulates input the same way a real click would, through mpv's own dispatch) rather than posting a QMouseEvent, since a QMouseEvent would only prove Qt-level dead code works, not the real behavior -- that mistake produced a false pass earlier in this session, worth not repeating. """ import sys import time from pathlib import Path from PyQt6.QtWidgets import QApplication sys.path.insert(0, str(Path(__file__).resolve().parent.parent)) import main as app_main ROOT = Path(__file__).resolve().parent.parent CLIP = str(ROOT / "test_media" / "sync_test_INSYNC.mp4") def main(): qapp = QApplication(sys.argv) win = app_main.MainWindow() win.show() qapp.processEvents() win._load(CLIP) qapp.processEvents() time.sleep(0.2) qapp.processEvents() # -- File menu has Load File, no more load_button in the layout menu_titles = [a.text() for a in win.menuBar().actions()] assert "&File" in menu_titles, f"expected a File menu, got {menu_titles}" assert not hasattr(win, "load_button"), "old Load File button should be gone" print("PASS: Load File lives in the File menu") # -- Right-click on the player toggles play/pause assert win.source_panel.player.mpv.pause is True, "should start paused" win.source_panel.player.mpv.command("keypress", "MBTN_RIGHT") qapp.processEvents() time.sleep(0.2) qapp.processEvents() assert win.source_panel.player.mpv.pause is False, "right-click should have started playback" assert win.source_panel.play_button.text() == "Pause" print("PASS: right-click on player started playback") win.source_panel.player.mpv.command("keypress", "MBTN_RIGHT") qapp.processEvents() time.sleep(0.2) qapp.processEvents() assert win.source_panel.player.mpv.pause is True, "second right-click should pause again" assert win.source_panel.play_button.text() == "Play" print("PASS: right-click on player paused again") win.source_panel.shutdown() win.preview_panel.shutdown() print("\nRIGHT-CLICK / FILE MENU SMOKE TEST PASSED") if __name__ == "__main__": main()