ddd92e3dd4
- Add ToolType.home_directory column with default /home/user
- Add Alembic migration to add column, set existing rows, and rewrite
/workspace to /home/user/{{WORKSPACE_NAME}} in legacy templates
- Add merge migration fc8f1a20cbf6 to resolve Alembic multiple heads
- Update manifest compiler to honor manifest.home_directory for HOME,
WORKDIR, /workspace symlink, and default repo mount target
- Update legacy dockerfile/compose instance generation to use
tool_type.home_directory
- Thread resolved home_dir through config profile and git mount expansion
- Generate entrypoint permission fixer to chown home/mounts at startup
- Update base.dockerfile with sudo/passwordless sudo for permission fixer
- Add unit tests for manifest compiler, instance service, and migrations
- Add placeholder integration test for container lifecycle
- Update openspec/tasks/home-path-expansion.md task checkboxes
- Update project maps for modified files
Quality gates: py_compile, ruff, mypy, pytest tests/unit (205 passed),
pytest tests/integration (110 passed, 35 skipped). Alembic round-trip
and container lifecycle integration tests require Docker/PostgreSQL.
35 lines
1002 B
Python
35 lines
1002 B
Python
"""Integration tests for tool container home directory behavior.
|
|
|
|
These tests exercise container lifecycle behavior and require Docker and a
|
|
running PostgreSQL database. They are skipped when Docker is unavailable.
|
|
"""
|
|
|
|
import subprocess
|
|
|
|
import pytest
|
|
|
|
|
|
def _docker_available() -> bool:
|
|
try:
|
|
result = subprocess.run(
|
|
["docker", "info"],
|
|
capture_output=True,
|
|
text=True,
|
|
timeout=10,
|
|
)
|
|
return result.returncode == 0
|
|
except Exception:
|
|
return False
|
|
|
|
|
|
@pytest.mark.integration
|
|
@pytest.mark.skipif(not _docker_available(), reason="Docker not available")
|
|
def test_docker_available_placeholder() -> None:
|
|
"""Placeholder to keep the test file valid when Docker is present.
|
|
|
|
Real lifecycle tests (container starts with HOME=/home/user, /workspace
|
|
symlink works, git mounts are writable) should be added here once the
|
|
test harness can start the API and Docker services.
|
|
"""
|
|
assert _docker_available()
|