48 lines
1.7 KiB
Python
48 lines
1.7 KiB
Python
from pathlib import Path
|
|
|
|
|
|
ROOT = Path(__file__).resolve().parents[2]
|
|
|
|
|
|
def test_docker_compose_reads_real_env_file_not_example():
|
|
compose_content = (ROOT / "docker-compose.yml").read_text(encoding="utf-8")
|
|
|
|
assert "- .env\n" in compose_content
|
|
assert "- .env.example" not in compose_content
|
|
|
|
|
|
def test_docker_compose_uses_fixed_project_name_for_stable_port_owner():
|
|
compose_content = (ROOT / "docker-compose.yml").read_text(encoding="utf-8")
|
|
|
|
assert "name: hot-comments-tool" in compose_content
|
|
assert '"8000:8000"' in compose_content or "- 8000:8000" in compose_content
|
|
|
|
|
|
def test_docker_compose_mounts_data_directory_for_sqlite_wal_files():
|
|
compose_content = (ROOT / "docker-compose.yml").read_text(encoding="utf-8")
|
|
|
|
assert "./data:/app/data" in compose_content
|
|
assert "app.db:/app/data/app.db" not in compose_content
|
|
|
|
|
|
def test_real_env_file_is_gitignored():
|
|
gitignore_lines = (ROOT / ".gitignore").read_text(encoding="utf-8").splitlines()
|
|
|
|
assert ".env" in gitignore_lines
|
|
|
|
|
|
def test_dockerfile_does_not_bootstrap_uv_from_runtime_pip():
|
|
dockerfile_content = (ROOT / "Dockerfile").read_text(encoding="utf-8")
|
|
|
|
assert "pip install --no-cache-dir uv" not in dockerfile_content
|
|
assert "uv pip install" not in dockerfile_content
|
|
|
|
|
|
def test_dockerfile_installs_project_without_build_isolation():
|
|
dockerfile_content = (ROOT / "Dockerfile").read_text(encoding="utf-8")
|
|
|
|
assert "COPY requirements.txt ./" in dockerfile_content
|
|
assert "pip install --no-cache-dir -r requirements.txt" in dockerfile_content
|
|
assert "pip install --no-cache-dir ." not in dockerfile_content
|
|
assert "pip install --no-cache-dir --no-build-isolation ." not in dockerfile_content
|