adaptive-lighting/tests
Casey bba0ef31d8 Delete upstream docs apparatus; rewrite README for the fork
The CDiT fork is single-household and was carrying an entire upstream
docs/ mkdocs site documenting features the fork has removed (sleep mode,
take-over-control, brightness_mode selector, YAML config). The README
mostly auto-generated from those pages via markdown-code-runner.

What's gone:

- docs/ — all 11 pages + assets + run_markdown_code_runner.py
- .github/workflows/docs.yml — zensical+shinylive GitHub Pages build
- .github/workflows/markdown-code-runner.yml — auto-edit of README from docs/
- .github/update-services.py / update-strings.py — would clobber the
  hand-edited services.yaml / strings.json
- scripts/update-generated-content — orchestrator for the above
- custom_components/adaptive_lighting/_docs_helpers.py + docs_gen.py —
  only used by the deleted markdown-code-runner
- zensical.toml — docs-site config
- "docs" dependency group in pyproject.toml (markdown-code-runner,
  shinylive, zensical, etc.) + lock regenerated

What's new:

- README.md rewritten to describe the fork's actual surface — 3 switches,
  4 number entities, 3 sensor entities per profile, 2 services (apply +
  change_switch_settings), entry-only setup, UI tuning, sun source.
  Preserves the existing "What's new in 2.1" / "2.2" block quotes.
- webapp/README.md annotated to flag the Shiny simulator models the
  upstream curve (with brightness_mode, sleep mode, etc.) and does not
  reflect the fork.
- CLAUDE.md command table no longer references update-generated-content.

Sensor.py + test_sensor_platform.py: incidental black reformat from the
lint pass (multi-arg function calls split per line).

Tests still pass (123/123). Lint clean. Sensors implementation
unchanged.
2026-05-21 10:23:04 +02:00
..
__init__.py Copy tests from https://github.com/home-assistant/core/pull/40626 2022-08-28 12:05:31 -07:00
conftest.py Implement add-runtime-range-controls 2026-05-16 22:24:39 +02:00
README.md docs: clarify Docker test setup requirements (#1383) 2026-01-11 21:57:52 +01:00
test_adaptation_utils.py Auto-fix unused imports across tests + switch.py (ruff --fix) 2026-05-16 15:12:19 +02:00
test_color_and_brightness.py Implement add-runtime-range-controls 2026-05-16 22:24:39 +02:00
test_config_flow.py Implement add-runtime-range-controls 2026-05-16 22:24:39 +02:00
test_hass_utils.py Auto-fix unused imports across tests + switch.py (ruff --fix) 2026-05-16 15:12:19 +02:00
test_init.py Implement add-runtime-range-controls 2026-05-16 22:24:39 +02:00
test_number_platform.py Implement add-output-sensors: 36/41 tasks complete 2026-05-21 10:11:52 +02:00
test_sensor_platform.py Delete upstream docs apparatus; rewrite README for the fork 2026-05-21 10:23:04 +02:00

Developer notes for the tests directory

To run the tests, check out the CI configuration to see how they are executed in the CI pipeline. Alternatively, you can use the provided Docker image to run the tests locally or run them with VS Code directly in the dev container.

Prerequisites

Before running tests with Docker, you need a local Home Assistant core checkout with symlinks:

# Clone HA core (one-time setup)
git clone --depth 1 https://github.com/home-assistant/core.git core

# Setup symlinks (one-time setup)
./scripts/setup-symlinks

Running tests with Docker

Navigate to the adaptive-lighting repo folder and execute the following command.

Important: Mount the entire repo (-v $(pwd):/app), not individual directories, or the symlinks will break.

Linux / MacOS / Windows PowerShell:

docker run -v ${PWD}:/app basnijholt/adaptive-lighting:latest
  • In windows command prompt, the command is:
    docker run -v %cd%:/app basnijholt/adaptive-lighting:latest
    

This command will download the Docker image from the adaptive-lighting Docker Hub repo and run the tests.

If you prefer to build the image yourself, use the following command:

docker build -t basnijholt/adaptive-lighting:latest --no-cache --progress=plain .

This might be necessary if the image on Docker Hub is outdated or if the test_dependencies.py file is updated.

Passing arguments to pytest

You can pass arguments to pytest by appending them to the command:

For example, to run the tests with a custom log format, use the following command (this also gets rid of the captured stderr output):

docker run -v $(pwd):/app basnijholt/adaptive-lighting:latest --show-capture=log --log-format="%(asctime)s %(levelname)-8s %(name)s:%(filename)s:%(lineno)s %(message)s" --log-date-format="%H:%M:%S" tests/components/adaptive_lighting/