Compare commits

...

1 commit

Author SHA1 Message Date
Bas Nijholt
d07f5813a9 Fix Docker volume mounts overwriting build-time symlinks
Move pytest command to entrypoint script that recreates symlinks at
runtime. This allows mounting local code with -v without breaking the
symlinks that connect the test runner to the component and test files.
2026-01-11 12:44:45 -08:00
2 changed files with 24 additions and 23 deletions

View file

@ -35,29 +35,8 @@ WORKDIR /app/core
# Make 'custom_components/adaptive_lighting' imports available to tests
ENV PYTHONPATH="${PYTHONPATH}:/app"
ENTRYPOINT ["python3", \
# Enable Python development mode
"-X", "dev", \
# Run pytest
"-m", "pytest", \
# Verbose output
"-vvv", \
# Set a timeout of 9 seconds per test
"--timeout=9", \
# Print the 10 slowest tests
"--durations=10", \
# Measure code coverage for the 'homeassistant' package
"--cov='homeassistant'", \
# Generate an XML report of the code coverage
"--cov-report=xml", \
# Generate an HTML report of the code coverage
"--cov-report=html", \
# Print a summary of the code coverage in the console
"--cov-report=term", \
# Print logs in color
"--color=yes", \
# Print a count of test results in the console
"-o", "console_output_style=count"]
# Entrypoint sets up symlinks at runtime (needed because volume mount overwrites build-time symlinks)
ENTRYPOINT ["/app/scripts/docker-entrypoint.sh"]
# Run tests in the 'tests/components/adaptive_lighting' directory
CMD ["tests/components/adaptive_lighting"]

22
scripts/docker-entrypoint.sh Executable file
View file

@ -0,0 +1,22 @@
#!/usr/bin/env bash
# Entrypoint script for Docker container
# Sets up symlinks at runtime (needed because volume mount overwrites build-time symlinks)
set -e
# Create symlinks with absolute paths so they work after volume mount
ln -sfn /app/custom_components/adaptive_lighting /core/homeassistant/components/adaptive_lighting
ln -sfn /app/tests /core/tests/components/adaptive_lighting
# Run pytest with all arguments
exec python3 -X dev -m pytest \
-vvv \
--timeout=9 \
--durations=10 \
--cov='homeassistant' \
--cov-report=xml \
--cov-report=html \
--cov-report=term \
--color=yes \
-o console_output_style=count \
"$@"