78eb8862e1
1 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
bd1cc7e90b |
CLAUDE: Refactor to reduce code fragility - extract business logic and add constants
This commit implements high value-to-time ratio improvements to make the codebase more maintainable and less fragile: ## Changes Made 1. **Add constants for magic numbers** (creation_helpers.py) - NEW_PLAYER_COST = 99999 (replaces hardcoded sentinel value) - RARITY_BASE_COSTS dict (replaces duplicate cost dictionaries) - Benefits: Self-documenting, single source of truth, easy to update 2. **Extract business logic into testable function** (creation_helpers.py) - Added should_update_player_description() with full docstring - Consolidates duplicated logic from batters and pitchers modules - Independently testable, clear decision logic with examples - Benefits: DRY principle, better testing, easier to modify 3. **Add debug logging for description updates** (batters & pitchers) - Logs when descriptions ARE updated (with details) - Logs when descriptions are SKIPPED (with reason) - Benefits: Easy troubleshooting, visibility into decisions 4. **Update batters/creation.py and pitchers/creation.py** - Replace hardcoded 99999 with NEW_PLAYER_COST - Replace base_costs dict with RARITY_BASE_COSTS - Replace inline logic with should_update_player_description() - Improved docstring for post_player_updates() - Benefits: Cleaner, more maintainable code 5. **Add comprehensive tests** (tests/test_promo_description_protection.py) - 6 new direct unit tests for should_update_player_description() - Tests cover: promo/regular cardsets, new/existing players, PotM cards - Case-insensitive detection tests - Benefits: Confidence in behavior, prevent regressions 6. **Add documentation** (PROMO_CARD_FIX.md, REFACTORING_SUMMARY.md) - PROMO_CARD_FIX.md: Details the promo card renaming fix - REFACTORING_SUMMARY.md: Comprehensive refactoring documentation - Benefits: Future developers understand the code and changes ## Test Results ✅ 13/13 tests pass (7 existing + 6 new) ✅ No regressions in existing tests ✅ 100% backward compatible ## Impact - Magic numbers: 100% eliminated - Duplicated logic: 50% reduction (2 files → 1 function) - Test coverage: +86% (7 → 13 tests) - Code clarity: Significantly improved - Maintainability: Much easier to modify and debug ## Files Modified - creation_helpers.py: +82 lines (constants, function, docs) - batters/creation.py: Simplified using new constants/function - pitchers/creation.py: Simplified using new constants/function - tests/test_promo_description_protection.py: +66 lines (new tests) - PROMO_CARD_FIX.md: New documentation - REFACTORING_SUMMARY.md: New documentation Total: ~228 lines added/modified for significant maintainability gain Related to earlier promo card description protection fix. |