Bump the pytest-embedded pins to 2.9.3 - #31
Merged
Conversation
Moves the five harness pins from 2.8.1 to 2.9.3, the release carrying the fix for espressif/pytest-embedded#425. _PopenRedirectProcess._forward_io tailed the redirect log in text mode while it was still being appended to, so a UTF-8 sequence straddling a read boundary raised UnicodeDecodeError. The `except Exception` around the read swallowed it: the forwarder exited 0 with an empty stderr and DUT output stopped for the rest of the session, surfacing much later as a pexpect timeout naming an unrelated test. 2.9.0 opens that file with 'rb' - verified in the published wheel, not from the changelog. Nothing else moves. pytest-embedded-serial-esp still requires esptool<6,>=5.2 unchanged between the two releases, so esptool stays at 5.3.1 and the assertion in the verification layer stays as it is; pytest, pytest-timeout and pytest-cov are already at their latest. The dependency set of pytest-embedded itself is identical across the bump. Verified behaviourally rather than by version string: a 200-line firmware emitting an em dash, run under QEMU in the built image, passes in 2.9s on 2.9.3 and fails with pexpect.exceptions.TIMEOUT on 2.8.1 - output truncated at line 012 - with the harness downgraded inside that same image. The version in the comment above the pins moves with them; it names the release whose esptool requirement the paragraph is about. Closes #30
There was a problem hiding this comment.
Pull request overview
Updates the ESP-IDF developer image’s fully pinned pytest-embedded harness stack to pick up an upstream fix for redirect-log decoding (the _forward_io text-mode read causing UnicodeDecodeError and dropped DUT output).
Changes:
- Bump
pytest-embedded*pins from2.8.1to2.9.3inimages/esp-idf/Dockerfile. - Update the adjacent Dockerfile comment to reflect the new harness version while keeping the existing
esptool==5.3.1pin and verification logic unchanged.
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Поднимает пять пинов harness с 2.8.1 на 2.9.3 — релиз, несущий фикс espressif/pytest-embedded#426 (issue #425).
Что было сломано
_PopenRedirectProcess._forward_ioчитал лог редиректа в текстовом режиме, пока файл ещё дописывался. UTF-8 последовательность, попавшая на границу чтения, давалаUnicodeDecodeError;except Exceptionвокруг чтения её глотал, forwarder выходил с кодом 0 и пустым stderr, и вывод DUT пропадал до конца сессии — всплывая много позже как pexpect-таймаут в постороннем тесте.В 2.9.0 файл открывается с
rb. Проверено в опубликованном wheel, а не по changelog: вpytest_embedded/log.pyу 2.8.1 стоитopen(logfile), у 2.9.3 —open(logfile, rb).Что не двигается
pytest-embedded-serial-espтребуетesptool<6,>=5.2и в 2.8.1, и в 2.9.3 — сверено по метаданным PyPI. Поэтому esptool остаётся на 5.3.1, и ассертgrep -qx esptool==5.3.1в верификационном слое остаётся как есть.pytest,pytest-timeoutиpytest-covуже на последних версиях. Набор зависимостей самогоpytest-embeddedчерез бамп не меняется.Номер версии в комментарии над пинами поднят вместе с ними — он называет релиз, о требовании которого к esptool говорит абзац.
Проверено
./scripts/check-pins.shи./scripts/check-versions.sh— зелёные./scripts/build.sh esp-idf, exit 0), верификационный слой прошёл: ассерт esptool держится,pip freezeпоказывает все пять пинов на 2.9.3pexpect.exceptions.TIMEOUTс обрывом вывода на строке 012 из 200Closes #30