Equivalencia desde Kotlin
Herramientas
CercanaEn Python, uv (uv sync, uv run, pyproject.toml con su lockfile uv.lock) expresa la responsabilidad del fixture: Instala las dependencias declaradas, construye todos los módulos, ejecuta las pruebas y corre la aplicación de línea de comandos.
Referencia Kotlin: Gradle, mediante el wrapper ./gradlew, resuelve las dependencias declaradas, construye los subproyectos registrados en settings.gradle.kts y ejecuta tareas como build, test y :app:run.
- Mecanismo
- uv (
uv sync,uv run,pyproject.tomlcon su lockfileuv.lock) - Riesgo de diseño
- Copiar la sintaxis de Kotlin en vez de usar uv (
uv sync,uv run,pyproject.tomlcon su lockfileuv.lock).
- Recomendación
- Expón el contrato del fixture y usa uv (
uv sync,uv run,pyproject.tomlcon su lockfileuv.lock) solo para la garantía que realmente ofrece.
Diferencias relevantes
- Distingue el ejecutable de build invocado (el wrapper o la CLI de la herramienta) de los archivos de manifiesto y lockfile que declaran las dependencias y su resolución.
- La forma idiomática de Python debe conservarse aunque la sintaxis difiera de Kotlin.
Instala las dependencias declaradas, construye todos los módulos, ejecuta las pruebas y corre la aplicación de línea de comandos.
docker compose run --rm app uv sync
docker compose run --rm app uv run pytest
docker compose run --rm app uv run appDockerfile mínimo para el toolchain de Python.
FROM ghcr.io/astral-sh/uv:python3.13-bookworm
WORKDIR /workspace
COPY . .compose.yaml: construye la imagen y monta el proyecto para correr los comandos anteriores dentro del contenedor.
services:
app:
build: .
volumes:
- .:/workspace
working_dir: /workspace