Skip to content

[BUG] Windows tests fail on Unix-only and user-specific assumptions #1259

Description

@Neonsy

Summary

A full test run on Windows 11 with Python 3.14.6 produced 1,639 passes, 32 failures, and 11 skips

Most failures came from Unix assumptions or developer-specific Git settings rather than Strix product behavior

That makes it hard to tell whether a failure comes from Strix or only from a Unix-specific test

Failure breakdown

  • Nineteen threat-model tests call /usr/bin/env git
  • Three tests require the POSIX file mode 0600
  • Two tests create filenames with control characters that Windows rejects
  • One mount-policy test assumes /etc exists
  • Two source-selection tests inherit the developer's global Git ignore rules
  • Mypy reports missing Windows attributes for fcntl locks and os.getuid or os.getgid

Issue #648 and pull request #652 cover one permission assertion, so this issue should cover the remaining shared test infrastructure

Proposed cleanup

  • Resolve Git with shutil.which("git")
  • Test the Windows security contract instead of POSIX mode bits where appropriate
  • Create control-character filenames only on filesystems that support them
  • Select protected system paths through a platform helper
  • Isolate Git tests from GIT_CONFIG_GLOBAL and GIT_CONFIG_SYSTEM
  • Guard platform-specific imports so Windows type checking does not resolve unavailable APIs

Why this cleanup matters

uv run pytest should stop failing because a fixture assumes Unix behavior or inherits a developer's Git configuration

Where Windows cannot provide the same filesystem behavior, the test should explain the platform-specific skip instead of hiding a product failure

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions