J.A.R.V.I.S-py/tests
Bossiara13 5265cb0fbe
Some checks are pending
Python CI / pytest (ubuntu-latest) (push) Waiting to run
Python CI / pytest (windows-latest) (push) Waiting to run
Python CI / ruff (push) Waiting to run
feat: Wave 5 Python parity — outlook COM + time tracker
Outlook COM (`outlook_handlers.py`, agent):
- 4 handlers mirroring Rust pack: unread_count, latest, send_clipboard,
  summarize_inbox. Uses `win32com.client` with lazy import so the module
  loads even when pywin32 is missing — handlers degrade gracefully and
  speak a "Outlook недоступен" reply.
- `requirements.txt`: pywin32>=305 (optional).
- 7 unit tests mock `_outlook_session` via unittest.mock.

Time tracker (`time_tracker_handlers.py`, agent):
- 5 handlers: start, stop, today, week, reset. JSON store at
  `<here>/time_tracker.json`, atomic write-then-rename.
- Same shape as the Rust pack's `jarvis.state` blob: current_session_start
  + sessions[{start,end}]. Local-calendar today boundary.
- Full Russian pluralisation (час/часа/часов, минута/минуты/минут).
- 14 unit tests using the existing `isolated_state` fixture in conftest.py.

`extensions.py` + `main.py`: imports + 9 new proxy do_* functions + 9
new dispatch elifs. `commands.yaml`: 9 new entries.

Tests: 60 → 81 (+14 tracker + 7 outlook).
2026-05-16 14:34:44 +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_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