Skip to content

[blender] EEVEE engine name drift and symlink-dependent previews (9 test failures on stock Windows) #402

Description

@SleepyOldOrbs

[blender] Two smaller portability issues: EEVEE engine name and symlink-dependent previews

Filed together as they are both low-severity and both in the Blender harness. Split if
you prefer.

1. test_script_render_settings_eevee asserts an engine name that no longer exists

FAILED TestBPYScriptGeneration::test_script_render_settings_eevee
       - assert 'BLENDER_EEVEE_NEXT' in '#!/usr/bin/env python3\n"""Auto-generated B...

registry.json says requires: blender >= 4.2, but the engine identifier has changed
again since. The changelog shows a "Blender EEVEE engine name corrected" fix on
2026-03-25, so this has already been chased once.

Rather than hardcoding the current name, it may be worth mapping the engine id by
detected Blender version, or asserting on a set of accepted identifiers, so the next
rename doesn't break the suite again.

Tested against Blender 5.2.0 LTS.

2. Preview module requires symlink privilege — 7 test failures on stock Windows

FAILED TestPreview::test_live_start_publishes_session          OSError: [WinError 1314]
FAILED TestPreview::test_live_push_updates_history             OSError: [WinError 1314]
FAILED TestPreview::test_live_status_includes_trajectory_summary
FAILED TestPreview::test_live_push_appends_trajectory_even_when_bundle_is_reused
FAILED TestPreview::test_live_stop_marks_session_stopped
FAILED TestPreview::test_poll_live_session_once_captures_after_source_change
FAILED TestPreview::test_poll_live_session_once_exits_for_manual_mode

WinError 1314: A required privilege is not held by the client — creating a symlink on
Windows needs either administrator rights or Developer Mode enabled. Neither is on by
default.

Two further failures (TestCLISubprocess::test_cli_preview_live_manual_session,
TestPreviewE2E::test_preview_live_poll_auto_refresh) appear to be downstream of the
same cause.

This is partly environmental — enabling Developer Mode clears it — but a preview bundle
arguably shouldn't need symlinks at all. Suggested options, in order of preference:

  1. Copy the file instead of symlinking (bundles are small).
  2. Fall back to a copy when OSError/WinError 1314 is raised.
  3. If symlinks are genuinely required, pytest.skip with a clear message on Windows
    without the privilege, as the Joplin suite already does
    (134 passed ✅ (107 unit + 27 e2e, 1 skipped on Windows)).

Option 2 keeps behaviour identical where symlinks work.

Environment

OS Windows 11 Pro 10.0.26100 (Developer Mode off, non-elevated)
Python 3.14.6
Blender 5.2.0 LTS
Repo bc536c9 (2026-07-09)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions