Skip to content

V2.3.2 — Bug Bash + Test Suite

Choose a tag to compare

@Dry1ceD7 Dry1ceD7 released this 18 Mar 04:08
· 213 commits to main since this release

What's Changed

Bug Bash Fixes (from V2.3.1 audit)

  • main.py: Moved conditional tkinter import to top-level (PEP-8 compliance)
  • core/logic.py: Fixed any → Any type hint; resolve_rate() now enforces both USD and EUR presence
  • core/api_client.py: Bearer token normalization — prevents Bearer Bearer <token> from .env copy-paste errors
  • core/database.py: Full thread lock coverage on all read operations (was writes-only)
  • core/backup_manager.py: __bak__ separator in backup filenames — prevents cross-file restoration collision
  • core/engine.py: Replaced 3 bare except: pass with except (ValueError, TypeError):; cache-reconstructed buying_transfer set to None instead of duplicating selling rate
  • gui/app.py: Date validation for impossible dates; isinstance() exception checking; vertical window resize enabled

V2.3.2 Polish

  • engine.py: Last broad except Exception: narrowed to (ValueError, TypeError)
  • gui/app.py: _assemble_start_date() return type → Optional[str]; last_processed_path → Optional[str]
  • engine.py: atexit handler for clean CacheDB shutdown
  • database.py: Docstring updated for full lock coverage

New: Test Suite (47 tests, all passing)

  • tests/test_logic.py — 21 tests: safe_to_decimal, is_trading_day, resolve_rate backtrack
  • tests/test_database.py — 14 tests: CRUD, bulk, holidays, stats, thread safety
  • tests/test_backup_manager.py — 12 tests: create, restore, collision prevention, cleanup

Run Tests

python -m pytest tests/ -v