• Stefy Lanza (nextime / spora )'s avatar
    Fix retry processor schema/code bugs and align retry tests · 38d63406
    Stefy Lanza (nextime / spora ) authored
    Real bugs surfaced by the retry tests (code referenced schema that did not
    exist / wrong table):
    - subscriptions was missing cancelled_at (written when a renewal exhausts its
      retries and cancels the subscription).
    - payment_retry_queue was missing last_attempt_at (written when scheduling the
      next retry).
    - retry.py queried a non-existent `tiers` table for the free tier; corrected to
      account_tiers (and is_default = 1 for cross-DB boolean compatibility).
    
    Migration changes add the two columns to the CREATE statements and provide
    idempotent, cross-DB (SQLite PRAGMA / MySQL INFORMATION_SCHEMA) ALTERs for
    existing databases.
    
    test_retry: crypto retries are intentionally skipped without incrementing while
    the wallet is unfunded, so the increment/downgrade tests now drive a failing
    gateway charge instead, and expect the same free tier the code selects.
    
    Verified all payment migration DDL (CREATE + new ALTERs + INFORMATION_SCHEMA
    existence checks) executes cleanly on MariaDB/MySQL as well as SQLite.
    Co-Authored-By: 's avatarClaude Opus 4.8 <noreply@anthropic.com>
    38d63406
Name
Last commit
Last update
..
subscription Loading commit data...
__init__.py Loading commit data...
test_auto_topup.py Loading commit data...
test_integration.py Loading commit data...
test_migrations.py Loading commit data...
test_monitor.py Loading commit data...
test_paypal.py Loading commit data...
test_pricing.py Loading commit data...
test_renewal.py Loading commit data...
test_retry.py Loading commit data...
test_stripe.py Loading commit data...
test_subscription.py Loading commit data...
test_topup.py Loading commit data...
test_wallet.py Loading commit data...
test_wallet_renewal.py Loading commit data...