Files
seedsigner/tests
kdmukai 45bc864ed9 Fix held button skipping image entropy preview and review
When the user holds the button that launches the image entropy flow, the
still-held press was being read as an ANYCLICK, causing the live preview
frames to be skipped and the final image to be captured immediately. The
same held button could then auto-accept the final image review without
the user ever seeing it.

- Live preview: ignore a held ANYCLICK until all buttons have been seen
  released once, so only a fresh press captures the final frame.
- Final image review: wait for all buttons to be released before
  listening for the accept/reshoot decision.

Add tests/test_tools_screens.py covering the held-button sequences at
both stages, since these interactions directly affect the security of
the generated seed.
2026-08-08 13:30:22 -05:00
..
2025-10-23 14:23:27 -05:00
2024-11-06 14:00:36 -06:00
2025-02-27 10:53:57 -06:00
2024-11-05 12:19:35 -06:00
2025-12-17 21:11:14 +01:00
2025-12-26 07:13:00 -06:00
2024-03-02 07:46:35 -06:00
2025-12-09 20:17:18 +01:00
2024-07-14 13:21:23 -05:00
2025-01-02 18:38:03 -06:00

Running Tests

The tests are designed to be run on non-Raspi hardware.

Setup

On your testing machine you'll have to install:

# general dependencies
pip3 install -r requirements.txt

# test suite dependencies
pip3 install -r tests/requirements.txt

Then make the seedsigner python module visible/importable to the tests by installing it:

pip3 install -e .

Running all tests, calculating overall test coverage

tldr: just run the convenience script from the project root:

./tests/run_full_coverage.sh

Running tests manually

Run the whole test suite:

pytest

Run a specific test file:

pytest tests/test_this_file.py

Run a specific test:

pytest tests/test_this_file.py::test_this_specific_test

Force pytest to show logging output:

pytest tests/test_this_file.py::test_this_specific_test -o log_cli=1

# or (same result)

pytest tests/test_this_file.py::test_this_specific_test --log-cli-level=DEBUG

Annoying complications:

  • If you want to see print() statements that are in a test file, add -s
  • Better idea: use a proper logger in the test file and use one of the above options to display logs

Screenshot generator

The screenshot generator is meant to mostly be a utility and not really part of the test suite. However, it is actually implemented to be run by pytest.

see: Screenshot generator README

Generate coverage manually

Run tests and generate test coverage

coverage run -m pytest

The screenshots can generate their own separate coverage report:

coverage run -m pytest tests/screenshot_generator/generator.py --locale es

Show the resulting test coverage details:

coverage report

Generate the interactive html report:

coverage html