Repository navigation
ci(tests): cut redundant test work and keep the font worker off the database layer - #9893
Open
Pfannkuchensack wants to merge 4 commits into
Open
Pfannkuchensack wants to merge 4 commits into
Pfannkuchensack wants to merge 4 commits into
Conversation
…atabase layer The font worker imports its byte helpers from fonts_parsing instead of fonts_default, dropping SQLAlchemy and config from every spawn. Skips the windows-vacuous SIGINT subprocess test, removes the duplicate UMAP smoke, marks shape-only VAE sweeps platform_independent. Makes the upload heartbeat test deterministic and derives the concat short-remainder lengths from the keyframe position.
This branch has not been deployed
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.
Summary
This follows #9859. On current
main, the files with the most windows CI time were video splice tests, the font service tests and a few duplicate or vacuous checks. Font and video tests now spend most of their time starting worker processes rather than doing work. This PR removes the parts that cost time without adding coverage, plus one import cost that also affects the running app.fonts_workeris spawned once per font parse and once per variable-font instance. Its docstring says it stays light, but it imported its helpers fromfonts_default, which pulled in SQLAlchemy and config.fonts_parsing, and the error hierarchy and supported extensions infonts_common.fonts_defaultno longer imports fontTools.os.kill(pid, SIGINT)isTerminateProcess, so the test passed even withrun_nodeswallowingBaseException. The in-processtest_run_node_propagates_keyboard_interruptstill catches that on windows.test_projection.pyalready runs real seeded UMAP and DBSCAN fits on every platform.test_numba_jit_is_activestays.platform_independent, like the sweeps already marked intest_vae_tiling_scope.py.asyncio.Eventand asserts that the request is still pending.Measured locally (CPU only, 8 xdist workers), worker time on the files present in both runs:
not slow and not platform_independent)test_fonts_service.pytest_video_concat_splice.py(alone)test_umap_import.pyRelated Issues / Discussions
Follows #9859.
QA Instructions
uv run --no-sync pytest -n 8: 13755 passed.routers/test_utilities.pypassed twice in a row (109 passed).-X importtimeoffonts_workerdrops from 1.1–1.3 s to ~0.25 s.invokeai.app.services.shared.databaseand fontTools are no longer imported by the worker and byfonts_default, respectively.run_nodeswallowingBaseException, the subprocess test passed and only the in-process test failed.MIN_ENCODED_FRAMES=1with the post-join timeline check disabled). WithMIN_ENCODED_FRAMES=1alone it now fails too, which the old version missed._plan_splicereturning None. Of the old pair, the soundtrack test passed in that case.ruff checkandruff format --checkare clean on all changed files.Review
SUPPORTED_FONT_EXTENSIONSinfonts_parsing, so the API process imported fontTools just for that constant. It now lives infonts_common.Checklist
What's Newcopy (if doing a release after this PR)Need help on this PR? Tag
@codesmith-botwith what you need.