How to Mock a Fast uv pip sync in Python

Simulate a fast uv pip sync by mocking file operations and subprocess calls to test dependency installation workflows.

Easy Python 3.9+ Aug 9, 2026 Modern tooling 14 views 0 copies

Python code

48 lines
Python 3.9+
import os
import shutil
import subprocess
import sys
import tempfile
from pathlib import Path

def uv_pip_sync_fast_install_mock(requirements_text: str) -> dict:
    """Simulate a fast uv pip sync by mocking file operations and subprocess calls."""
    mock_dir = Path(tempfile.mkdtemp(prefix="uv_mock_"))
    req_lines = [line.strip() for line in requirements_text.splitlines() if line.strip() and not line.startswith("#")]
    
    for i, pkg in enumerate(req_lines):
        pkg_path = mock_dir / f"{pkg.replace('==', '_').replace('>=', '_').replace('<', '_').replace(' ', '_')}.txt"
        pkg_path.write_text(f"MOCKED INSTALL FOR: {pkg}", encoding="utf-8")

    install_log = mock_dir / "install_log.txt"
    install_log.write_text(f"Mock uv pip sync completed in 0.001s\nPackages: {', '.join(req_lines)}", encoding="utf-8")

    # Simulate no-op subprocess (fast install)
    subprocess.run([sys.executable, "-c", "pass"], check=True, capture_output=True)

    return {
        "packages_installed": req_lines,
        "mock_dir": str(mock_dir),
        "install_log": install_log.read_text(encoding="utf-8"),
        "fast_install": True,
        "cleanup_required": True,
    }

if __name__ == "__main__":
    requirements = """# Mock requirements
requests==2.31.0
numpy>=1.24
pandas<2.0
"""
    result = uv_pip_sync_fast_install_mock(requirements)
    print(f"Simulated fast uv pip sync:")
    for key, value in result.items():
        if key == "packages_installed":
            print(f"  {key}: {value}")
        elif key == "install_log":
            print(f"  {key}:\n{value}")
        else:
            print(f"  {key}: {value}")
    # Cleanup demonstration (actual cleanup would be done after use)
    shutil.rmtree(result["mock_dir"], ignore_errors=True)
    print("  cleanup_required: completed (simulated)")

Output

stdout
Simulated fast uv pip sync:
  packages_installed: ['requests==2.31.0', 'numpy>=1.24', 'pandas<2.0']
  mock_dir: /tmp/uv_mock_xxxxxx
  install_log:
Mock uv pip sync completed in 0.001s
Packages: requests==2.31.0, numpy>=1.24, pandas<2.0
  fast_install: True
  cleanup_required: True
  cleanup_required: completed (simulated)

How it works

This code simulates a fast uv pip sync by creating a temporary directory and writing mocked package files for each requirement line. The subprocess call is a no-op that validates the execution path without real installation. The function returns a structured dictionary with install metadata that mimics a real sync's output. This mocking strategy lets you test scripts that depend on uv without hitting the network or slowing down CI. Temporary directory cleanup is demonstrated but left to the caller in practice.

Common mistakes

  • Forgetting to filter out empty lines and comments from requirements
  • Not cleaning up the temporary directory after testing
  • Assuming package names with operators like == or >= won't appear in filenames

Variations

  1. Use unittest.mock.patch to replace subprocess.run and return a fake CompletedProcess
  2. Create a fake uv binary script with a wrapper that logs calls to a file

Real-world use cases

  • Testing a deployment script that calls uv pip sync without installing real packages in CI.
  • Validating dependency parsing logic in a Python package manager tool.
  • Simulating fast install behavior in performance benchmarks of dependency resolution code.

Sponsored

Run this sample

Open the browser IDE to tweak the example and see results without installing anything.

Open editor

More from Modern tooling

Related tutorials and quizzes for this topic.