mirror of
https://github.com/esphome/esphome.git
synced 2026-09-18 02:28:42 +00:00
Revert ltchiptool as a hard dependency so the vast majority of ESPHome users (ESP32 / ESP8266 / nRF52 OTA) don't pay for libretiny tooling. Instead, on-demand install just the PlatformIO platform package when a --prebuilt-dir upload needs a flash tool that isn't on disk yet. Mechanism: when upload_program receives --prebuilt-dir for a libretiny or RP2040 target and the corresponding flash tool (ltchiptool / picotool) isn't found by get_ltchiptool_path / _find_picotool, run the same prep that 'esphome compile' would (write_cpp + write platformio.ini), then invoke 'pio pkg install -e <env>' instead of 'pio run'. PlatformIO downloads the platform without compiling, the flash tool ends up on disk, and the upload dispatch picks it up on the next lookup. After install, the tool path lookups (PATH + PIO penv for ltchiptool, PIO packages dir for picotool) succeed and the upload helper takes over. ESP32 / ESP8266 / nRF52 paths are unchanged (esptool is already bundled in requirements.txt; smpclient too for nRF52 mcumgr). Issue: esphome/device-builder#572 Issue: esphome/device-builder#570
Tests for ESPHome
This directory contains some tests for ESPHome.
At the moment, all the tests only work by simply executing
esphome over some YAML files that are made to test
whether the yaml gets converted to the proper C++ code.
Of course this is all just very high-level and things like unit tests would be much better. So if you have time and know how to set up a unit testing framework for python, please do give it a try.
When adding entries in test_.yaml files we usually need only
one file updated, unless conflicting code is generated for
different configurations, e.g. wifi and ethernet cannot
be tested on the same device.
Current test_.yaml file contents.
| Test name | Platform | Network | BLE |
|---|---|---|---|
| test1.yaml | ESP32 | wifi | None |
| test2.yaml | ESP32 | ethernet | esp32_ble_tracker |
| test3.yaml | ESP8266 | wifi | N/A |
| test4.yaml | ESP32 | ethernet | None |
| test5.yaml | ESP32 | wifi | ble_server |
| test6.yaml | RP2040 | wifi | N/A |
| test7.yaml | ESP32-C3 | wifi | N/A |
| test8.yaml | ESP32-S3 | wifi | None |
| test10.yaml | ESP32 | wifi | None |