ComfyUI-Manager/tests
Dr.Lt.Data fb3a67f22c test: fix enable/disable API parameter mismatch across all tests
Fix critical parameter naming issue causing 50% test failure rate.
All enable/disable operations were using incorrect parameter names,
causing silent failures (200 OK but no state change).

Root Cause:
- Disable operations require "node_name" parameter
- Enable operations require "cnr_id" parameter
- All tests were incorrectly using "id" parameter
- Queue/task endpoint validates params strictly via Pydantic models
- Invalid params cause silent failures with 200 OK response

Changes Applied:
- 14 disable operations: {"id": ...} → {"node_name": ...}
- 7 enable operations: {"id": ...} → {"cnr_id": ...}
- Added tests/check_test_results.sh for clean result monitoring

Files Modified:
- tests/glob/conftest.py (4 disable fixes)
- tests/glob/test_installed_api_enabled_priority.py (3 disable + 1 enable)
- tests/glob/test_enable_disable_api.py (6 disable + 4 enable)
- tests/glob/test_complex_scenarios.py (1 disable + 2 enable)
- tests/check_test_results.sh (new utility script)

Test Results:
- Before fixes: 5/10 environments passing (50%)
- After fixes: 9/10 environments passing (90%)
- Improvement: +4 environments (+80%)

Session Progress:
- Session start: 7/10 environments
- Current state: 9/10 environments
- Total improvement: +2 environments (+28.6%)

Remaining Work:
- 1 failure in Env 9: test_installed_api_no_duplicates_across_scenarios
- Issue: Package showing enabled=False in "CNR enabled + Nightly disabled" scenario

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 15:13:31 +09:00
..
glob test: fix enable/disable API parameter mismatch across all tests 2025-11-08 15:13:31 +09:00
.gitignore refactor: remove package-level caching to support dynamic installation 2025-11-08 09:07:09 +09:00
.test_durations refactor: remove package-level caching to support dynamic installation 2025-11-08 09:07:09 +09:00
check_test_results.sh test: fix enable/disable API parameter mismatch across all tests 2025-11-08 15:13:31 +09:00
README.md refactor: remove package-level caching to support dynamic installation 2025-11-08 09:07:09 +09:00
run_automated_tests.sh fix: resolve API parameter mismatch and cross-type package matching 2025-11-08 14:47:20 +09:00
run_full_test_suite.sh refactor: remove package-level caching to support dynamic installation 2025-11-08 09:07:09 +09:00
run_parallel_tests.sh refactor: remove package-level caching to support dynamic installation 2025-11-08 09:07:09 +09:00
run_tests.sh refactor: remove package-level caching to support dynamic installation 2025-11-08 09:07:09 +09:00
setup_parallel_test_envs.sh refactor: remove package-level caching to support dynamic installation 2025-11-08 09:07:09 +09:00
setup_test_env.sh refactor: remove package-level caching to support dynamic installation 2025-11-08 09:07:09 +09:00
TESTING_PROMPT.md refactor: remove package-level caching to support dynamic installation 2025-11-08 09:07:09 +09:00
update_test_durations.sh refactor: remove package-level caching to support dynamic installation 2025-11-08 09:07:09 +09:00

ComfyUI Manager Test Suite

Comprehensive test suite for ComfyUI Manager with parallel execution support.

Quick Start

Fastest Way: Automated Testing

./tests/run_automated_tests.sh

What it does:

  • Cleans environment and stops old processes
  • Sets up 10 parallel test environments
  • Runs all 43 tests in ~2 minutes
  • Generates comprehensive report

Expected: 100% pass rate, ~140-160s execution time, 9x+ speedup

For Claude Code Users

Load the testing prompt:

@tests/TESTING_PROMPT.md

Claude Code will automatically execute tests and provide intelligent analysis.

Test Suite Overview

Coverage (54 Tests)

  • Queue Task API (8 tests) - Install, uninstall, version switching
  • Version Switching (19 tests) - CNR↔Nightly, upgrades, downgrades
  • Enable/Disable API (5 tests) - Package activation
  • Update API (4 tests) - Package updates
  • Installed API (4 tests) - Package listing, original case preservation
  • Case Sensitivity (2 tests) - Case-insensitive lookup, full workflow
  • Complex Scenarios (12 tests) - Multi-version state, automatic switching

Performance

  • Execution: ~140-160s (2.3-2.7 minutes)
  • Parallel: 10 environments
  • Speedup: 9x+ vs sequential
  • Load Balance: 1.2x variance (excellent)

Manual Execution

# Setup (one-time)
export NUM_ENVS=10
./tests/setup_parallel_test_envs.sh

# Run tests
./tests/run_parallel_tests.sh

Single Environment Testing

# Setup
./tests/setup_test_env.sh

# Run tests
cd tests/env
python ComfyUI/main.py --enable-manager &
sleep 20
pytest ../glob/

Adding New Tests

When adding 3+ new tests or modifying test execution time significantly:

# 1. Write your tests in tests/glob/

# 2. Run tests and check load balance
./tests/run_automated_tests.sh
# Look for "Load Balance: X.XXx variance" in report

# 3. If variance > 2.0x, update durations
./tests/update_test_durations.sh  # Takes ~15-20 min

# 4. Commit duration data
git add .test_durations
git commit -m "chore: update test duration data"

See: glob/TESTING_GUIDE.md for detailed workflow

Files

  • run_automated_tests.sh - One-command test execution
  • run_parallel_tests.sh - Parallel test runner
  • setup_parallel_test_envs.sh - Environment setup
  • update_test_durations.sh - Update load balancing data
  • TESTING_PROMPT.md - Claude Code automation
  • glob/ - Test implementations
  • glob/TESTING_GUIDE.md - Development workflow guide

Requirements

  • Python 3.12+
  • Virtual environment: /home/rho/venv
  • ComfyUI branch: ltdrdata/dr-support-pip-cm
  • Ports: 8188-8197 available

Troubleshooting

Tests Fail to Start

# Stop existing processes
pkill -f "ComfyUI/main.py"
sleep 2

# Re-run
./tests/run_automated_tests.sh

Slow Execution

If tests take >3 minutes, update duration data:

./tests/update_test_durations.sh

Environment Issues

Rebuild test environments:

rm -rf tests/env/ComfyUI_*
NUM_ENVS=10 ./tests/setup_parallel_test_envs.sh

Generated Files

  • Report: .claude/livecontext/automated_test_*.md
  • Logs: tests/tmp/test-results-[1-10].log
  • Server Logs: tests/tmp/comfyui-parallel-[1-10].log

CI/CD Integration

- name: Run Tests
  run: |
    source /home/rho/venv/bin/activate
    ./tests/run_automated_tests.sh    

Exit code: 0 = pass, 1 = fail


Status: Production-ready (100% pass rate, <3min execution)

Recent Fixes (2025-11-06)

Fixed Test Failures

test_case_sensitivity_full_workflow

  • Issue: HTTP 405 error - incorrect API endpoint usage
  • Root Cause: Using non-existent /customnode/install endpoint
  • Fix: Migrated to queue API (/v2/manager/queue/task + /v2/manager/queue/start)
  • Changes: Updated request parameters ("id", "version", "selected_version")
  • Location: tests/glob/test_case_sensitivity_integration.py:65-200

test_enable_package

  • Issue: AssertionError - found 2 disabled packages instead of 1
  • Root Cause: Leftover disabled packages from previous parallel tests
  • Fix: Added cleanup before test execution (not just after)
  • Changes: Created _cleanup() helper, added filesystem sync delay
  • Location: tests/glob/test_enable_disable_api.py:56-111

Improvements

  • Increased wait times for parallel execution reliability (20s → 30s)
  • Added queue status checking for better debugging
  • Enhanced fixture cleanup with filesystem sync delays
  • Both tests now pass consistently in parallel execution