# Testing ## Why tests run in isolation Several tests replace ComfyUI modules in `sys.modules` with lightweight stubs. A single `unittest discover` process allows those stubs to leak into later test modules. `tests/run_all.py` therefore launches every Python file in a fresh interpreter and runs the frontend test separately when Node.js is available. ## Full offline suite ```powershell ..\..\..\python_embeded\python.exe tests\run_all.py ``` The suite must not contact real O1Key/provider endpoints or read the developer's `.config`. When Node.js is available, `run_all.py` also runs every `tests/test_*.mjs` frontend regression test in filename order. ## Focused tests ```powershell ..\..\..\python_embeded\python.exe tests\test_nano_banana_dynamic_inputs.py ..\..\..\python_embeded\python.exe tests\test_seedance_autopass_v3.py node tests\test_o1key_image_generator_frontend.mjs node tests\test_o1key_reference_image_editor.mjs node tests\test_video_trim_frontend.mjs ``` ## Static and import checks ```powershell ..\..\..\python_embeded\python.exe -m compileall -q __init__.py prestartup_script.py models_config.py clients nodes utils tests ..\..\..\python_embeded\python.exe -c "import sys; sys.path.insert(0, '..'); import comfyui_o1key; print('registered_nodes=', len(comfyui_o1key.NODE_CLASS_MAPPINGS)); print('web_directory=', comfyui_o1key.WEB_DIRECTORY)" git diff --check ``` `compileall` creates ignored `__pycache__` directories. They do not belong in Git. ## Validation matrix | Change | Minimum validation | | --- | --- | | Node schema or mapping | focused node test, full suite, import smoke | | Client payload or response parsing | focused client test, retry/failure cases | | Upload/download/polling | cancellation, size limit, retry, and failure tests | | `__init__.py`, requirements, package exports | compile, full suite, import smoke | | `web/js/o1keyImageGenerator.js` | frontend Node test | | `web/js/o1keyReferenceImageEditor.js` | editor and image-generator frontend Node tests | | `web/js/videoTrim.js` | video-trim frontend Node test | | Workflow widget order | migration regression test and manual old-workflow check | | Documentation only | link/path review and `git diff --check` | ## Manual checks Use a real ComfyUI session only when behavior cannot be proven offline, such as canvas interaction, sidebar layout, or native preview rendering. Never turn a credit-consuming live request into a default automated test.