Upgrade fakeredis to 2.32.1 from PyPI and move to main dependencies#186
Upgrade fakeredis to 2.32.1 from PyPI and move to main dependencies#186chrisguidry merged 2 commits intomainfrom
Conversation
Version 2.32.1 was released to PyPI on November 6, 2025, including the xpending_range fix that returns all 4 required fields (message_id, consumer, time_since_delivered, times_delivered). This allows us to: - Switch from the git dependency to a proper PyPI version - Move fakeredis from dev to main dependencies (it's used for the memory:// backend feature, not just testing) - Remove the temporary workaround and associated comments The memory backend is now a production-ready feature with clean dependency management. ## Changes - Added `fakeredis[lua]>=2.32.1` to main dependencies - Removed git reference from dev dependencies - Cleaned up workaround comments ## Testing - All 4 memory backend tests pass with PyPI version - All 398 tests pass with 100% coverage - All prek hooks pass Related: cunla/fakeredis-py#427 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
|
📚 Documentation has been built for this PR! You can download the documentation directly here: |
|
Claude finished @chrisguidry's task —— View job 🔍 PR Review: Upgrade fakeredis to 2.32.1I've completed my review of this pull request. The changes look good overall - this is a clean upgrade that properly moves fakeredis from a development git dependency to a production PyPI dependency. Review Checklist
✅ StrengthsClean dependency management:
High-quality test improvements:
Code organization:
📝 ObservationsTest stability improvements:
Memory backend support: ✅ ApprovalThis PR successfully completes the migration from a git dependency to the official PyPI release. The code quality is excellent, test coverage remains at 100%, and the test improvements enhance reliability. No security issues or bugs were identified. The CI checks all pass:
Great work on both the dependency upgrade and the test improvements! 🎉 |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #186 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 37 38 +1
Lines 6400 6443 +43
Branches 312 319 +7
=========================================
+ Hits 6400 6443 +43
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
|
Gonna toss some unrelated test fixes here to make our coverage and flakes a little better |
The Python 3.12 + Valkey 8.0 + redis-py >=5 test leg was intermittently failing with 99% coverage because line 891 in cli.py wasn't being hit. This happened when the watch command connected before progress data was written to Redis. Tests were using fixed asyncio.sleep() calls hoping data would be ready, but timing varies across environments. Replaced these with active polling that queries Redis directly until conditions are met. ## Changes **Added test utilities:** - `tests/cli/waiting.py` - Three helpers that poll Redis state: - `wait_for_progress_data()` - Waits for progress current/total values - `wait_for_execution_state()` - Waits for specific execution state (RUNNING, etc.) - `wait_for_worker_assignment()` - Waits for worker to claim task **Updated tests:** - Modified 5 tests in `tests/cli/test_watch.py` to use polling helpers instead of fixed sleeps - Tests now explicitly wait for the exact Redis conditions they need **Renamed files:** - `tests/cli/utils.py` → `tests/cli/run.py` (clearer name for CLI runner utility) - Updated imports across all CLI test files ## Benefits - Tests run faster (only wait as long as needed) - More reliable across different timing environments - Test intent is now explicit about what conditions they're waiting for - Should eliminate the intermittent coverage failures 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Version 2.32.1 was released to PyPI on November 6, 2025, including the xpending_range fix that returns all 4 required fields (message_id, consumer, time_since_delivered, times_delivered). This allows us to:
The memory backend is now a production-ready feature with clean dependency management.
Changes
fakeredis[lua]>=2.32.1to main dependenciesTesting
Related: cunla/fakeredis-py#427
🤖 Generated with Claude Code