ComfyUI-Manager/tests/.test_durations
Dr.Lt.Data 43647249cf refactor: remove package-level caching to support dynamic installation
Remove package-level caching in cnr_utils and node_package modules to enable
proper dynamic custom node installation and version switching without ComfyUI
server restarts.

Key Changes:
- Remove @lru_cache decorators from version-sensitive functions
- Remove cached_property from NodePackage for dynamic state updates
- Add comprehensive test suite with parallel execution support
- Implement version switching tests (CNR ↔ Nightly)
- Add case sensitivity integration tests
- Improve error handling and logging

API Priority Rules (manager_core.py:1801):
- Enabled-Priority: Show only enabled version when both exist
- CNR-Priority: Show only CNR when both CNR and Nightly are disabled
- Prevents duplicate package entries in /v2/customnode/installed API
- Cross-match using cnr_id and aux_id for CNR ↔ Nightly detection

Test Infrastructure:
- 8 test files with 59 comprehensive test cases
- Parallel test execution across 5 isolated environments
- Automated test scripts with environment setup
- Configurable timeout (60 minutes default)
- Support for both master and dr-support-pip-cm branches

Bug Fixes:
- Fix COMFYUI_CUSTOM_NODES_PATH environment variable export
- Resolve test fixture regression with module-level variables
- Fix import timing issues in test configuration
- Register pytest integration marker to eliminate warnings
- Fix POSIX compliance in shell scripts (((var++)) → $((var + 1)))

Documentation:
- CNR_VERSION_MANAGEMENT_DESIGN.md v1.0 → v1.1 with API priority rules
- Add test guides and execution documentation (TESTING_PROMPT.md)
- Add security-enhanced installation guide
- Create CLI migration guides and references
- Document package version management

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 09:07:09 +09:00

45 lines
4.3 KiB
Plaintext

{
"tests/glob/test_complex_scenarios.py::test_enable_cnr_when_both_disabled": 38.17840343294665,
"tests/glob/test_complex_scenarios.py::test_enable_nightly_when_both_disabled": 35.116954549972434,
"tests/glob/test_enable_disable_api.py::test_disable_package": 13.036482084076852,
"tests/glob/test_enable_disable_api.py::test_duplicate_disable": 16.040373252006248,
"tests/glob/test_enable_disable_api.py::test_duplicate_enable": 19.040736762981396,
"tests/glob/test_enable_disable_api.py::test_enable_disable_cycle": 19.037481372011825,
"tests/glob/test_enable_disable_api.py::test_enable_package": 16.04287036403548,
"tests/glob/test_installed_api_original_case.py::test_api_response_structure_matches_pypi": 0.001070555008482188,
"tests/glob/test_installed_api_original_case.py::test_cnr_package_original_case": 0.0010666880407370627,
"tests/glob/test_installed_api_original_case.py::test_installed_api_preserves_original_case": 2.0044877040199935,
"tests/glob/test_installed_api_original_case.py::test_nightly_package_original_case": 0.0010498670162633061,
"tests/glob/test_queue_task_api.py::test_case_insensitive_operations": 26.13506762601901,
"tests/glob/test_queue_task_api.py::test_install_package_via_queue": 5.002635493990965,
"tests/glob/test_queue_task_api.py::test_install_uninstall_cycle": 17.058559393975884,
"tests/glob/test_queue_task_api.py::test_queue_multiple_tasks": 8.031247623031959,
"tests/glob/test_queue_task_api.py::test_uninstall_package_via_queue": 13.007408522011247,
"tests/glob/test_queue_task_api.py::test_version_switch_between_cnr_versions": 16.005053027009126,
"tests/glob/test_queue_task_api.py::test_version_switch_cnr_to_nightly": 32.11444602702977,
"tests/glob/test_queue_task_api.py::test_version_switch_disabled_cnr_to_different_cnr": 26.010654640034772,
"tests/glob/test_update_api.py::test_update_already_latest": 18.00697946100263,
"tests/glob/test_update_api.py::test_update_cnr_package": 20.00709484401159,
"tests/glob/test_update_api.py::test_update_cycle": 20.006706968066283,
"tests/glob/test_update_api.py::test_update_nightly_package": 20.01158273994224,
"tests/glob/test_version_switching_comprehensive.py::test_cleanup_verification_no_orphans": 58.0193324740394,
"tests/glob/test_version_switching_comprehensive.py::test_cnr_direct_version_install_switching": 32.007448922027834,
"tests/glob/test_version_switching_comprehensive.py::test_cnr_version_downgrade": 32.01419593003811,
"tests/glob/test_version_switching_comprehensive.py::test_cnr_version_upgrade": 32.008723533013836,
"tests/glob/test_version_switching_comprehensive.py::test_fix_cnr_package": 32.00721229799092,
"tests/glob/test_version_switching_comprehensive.py::test_fix_nightly_package": 37.00825709104538,
"tests/glob/test_version_switching_comprehensive.py::test_fix_nonexistent_package_error": 12.01385385193862,
"tests/glob/test_version_switching_comprehensive.py::test_forward_scenario_cnr_nightly_cnr": 52.010525646968745,
"tests/glob/test_version_switching_comprehensive.py::test_fresh_install_after_uninstall": 17.005509667971637,
"tests/glob/test_version_switching_comprehensive.py::test_invalid_version_error_handling": 27.007191165990662,
"tests/glob/test_version_switching_comprehensive.py::test_nightly_same_version_reinstall_skip": 42.00828933296725,
"tests/glob/test_version_switching_comprehensive.py::test_nightly_update_git_pull": 37.00807314302074,
"tests/glob/test_version_switching_comprehensive.py::test_repeated_switching_4_times": 72.01205480098724,
"tests/glob/test_version_switching_comprehensive.py::test_reverse_scenario_nightly_cnr_nightly": 57.010148006957024,
"tests/glob/test_version_switching_comprehensive.py::test_same_version_reinstall_skip": 27.007290800916962,
"tests/glob/test_version_switching_comprehensive.py::test_uninstall_cnr_only": 27.007201189990155,
"tests/glob/test_version_switching_comprehensive.py::test_uninstall_mixed_enabled_disabled": 51.00947179296054,
"tests/glob/test_version_switching_comprehensive.py::test_uninstall_nightly_only": 32.00746411003638,
"tests/glob/test_version_switching_comprehensive.py::test_uninstall_with_multiple_disabled_versions": 76.01319772895658,
"tests/glob/test_case_sensitivity_integration.py::test_case_insensitive_lookup": 0.0017123910365626216
}