hermes-agent/tests/skills
Jérôme Benoit c34d3f4807 fix(skills): factor HERMES_HOME resolution into shared _hermes_home helper
The three google-workspace scripts (setup.py, google_api.py, gws_bridge.py)
each had their own way of resolving HERMES_HOME:

- setup.py imported hermes_constants (crashes outside Hermes process)
- google_api.py used os.getenv inline (no strip, no empty handling)
- gws_bridge.py defined its own local get_hermes_home() (duplicate)

Extract the common logic into _hermes_home.py which:
- Delegates to hermes_constants when available (profile support, etc.)
- Falls back to os.getenv with .strip() + empty-as-unset handling
- Provides display_hermes_home() with ~/ shortening for profiles

All three scripts now import from _hermes_home instead of duplicating.

7 regression tests cover the fallback path: env var override, default
~/.hermes, empty env var, display shortening, profile paths, and
custom non-home paths.

Closes #12722
2026-04-24 16:45:27 -07:00
..
test_google_oauth_setup.py fix(skills): factor HERMES_HOME resolution into shared _hermes_home helper 2026-04-24 16:45:27 -07:00
test_google_workspace_api.py fix(google-workspace): normalize authorized user token writes 2026-04-16 04:22:16 -07:00
test_memento_cards.py feat(skills): add memento-flashcards optional skill (#3827) 2026-03-29 16:52:52 -07:00
test_openclaw_migration.py fix(migration): don't auto-archive OpenClaw source directory 2026-04-12 00:33:54 -07:00
test_telephony_skill.py feat(skills): add optional telephony skill with Twilio, SMS, and AI calls (#1289) 2026-03-14 04:16:48 -07:00
test_youtube_quiz.py feat(skills): add memento-flashcards optional skill (#3827) 2026-03-29 16:52:52 -07:00