J.A.R.V.I.S-py/tests
Bossiara13 f102b8dc95
Some checks failed
Python CI / pytest (ubuntu-latest) (push) Has been cancelled
Python CI / pytest (windows-latest) (push) Has been cancelled
Python CI / ruff (push) Has been cancelled
feat: expense tracker Python parity (Wave 10)
New `expenses_handlers.py`:
- parse_expense(phrase) -> (amount, category) | None  — pure fn, fully
  unit-tested. Handles "потратил 500 на еду", comma decimals "12,50",
  EN "spent 12.5 on coffee", default category "разное".
- do_expenses_log: append entry to expenses.json (atomic write-then-rename).
- do_expenses_today: sum today's entries (local-day boundary).
- do_expenses_week: rolling 7-day total + count.
- do_expenses_breakdown: per-category, top-5 + tail collapse.

extensions.py / main.py / commands.yaml: 4 new dispatch entries.
.gitignore: + expenses.json.

tests/test_expenses_handlers.py: 8 unit tests covering parse, log,
today/week math, breakdown ordering + tail collapse.

Tests: 96 → 104 (+8). Total Python coverage now mirrors Rust pack
behaviour for personal finance.
2026-05-16 15:02:07 +03:00
..
__init__.py feat+test: pytest suite + Now Playing + World Clock + Daily Quote packs (154 commands) 2026-05-16 00:56:02 +03:00
conftest.py feat+test: pytest suite + Now Playing + World Clock + Daily Quote packs (154 commands) 2026-05-16 00:56:02 +03:00
test_expenses_handlers.py feat: expense tracker Python parity (Wave 10) 2026-05-16 15:02:07 +03:00
test_gui_smoke.py feat: Wave 3 — plugin loader + Flet GUI (parity with Rust fork) 2026-05-16 13:27:04 +03:00
test_llm_backend.py feat+test: pytest suite + Now Playing + World Clock + Daily Quote packs (154 commands) 2026-05-16 00:56:02 +03:00
test_macros_store.py feat+test: pytest suite + Now Playing + World Clock + Daily Quote packs (154 commands) 2026-05-16 00:56:02 +03:00
test_memory_store.py feat+test: pytest suite + Now Playing + World Clock + Daily Quote packs (154 commands) 2026-05-16 00:56:02 +03:00
test_outlook_handlers.py feat: Wave 5 Python parity — outlook COM + time tracker 2026-05-16 14:34:44 +03:00
test_personality_handlers.py feat: personality pack — Python parity 2026-05-16 13:53:44 +03:00
test_plugins_store.py feat: Wave 3 — plugin loader + Flet GUI (parity with Rust fork) 2026-05-16 13:27:04 +03:00
test_profiles_store.py feat+test: pytest suite + Now Playing + World Clock + Daily Quote packs (154 commands) 2026-05-16 00:56:02 +03:00
test_scheduler_store.py feat+test: pytest suite + Now Playing + World Clock + Daily Quote packs (154 commands) 2026-05-16 00:56:02 +03:00
test_time_tracker.py feat: Wave 5 Python parity — outlook COM + time tracker 2026-05-16 14:34:44 +03:00
test_wave68_handlers.py feat: Python parity for Wave 6-8 — memory admin / cooking / leftoff / trivia / routines 2026-05-16 14:55:47 +03:00