39 lines
1.5 KiB
Python
39 lines
1.5 KiB
Python
"""Tests for `hermes photon setup`'s access auto-configuration.
|
|
|
|
`_autoconfigure_access` allowlists the operator and points the cron home
|
|
channel at their DM, writing to the per-test ~/.hermes/.env (the hermetic
|
|
HERMES_HOME fixture isolates this). It must fill only unset keys so a re-run
|
|
never clobbers a hand-tuned allowlist.
|
|
"""
|
|
from __future__ import annotations
|
|
|
|
import pytest
|
|
|
|
from hermes_cli.config import get_env_value, save_env_value
|
|
from plugins.platforms.photon import cli
|
|
|
|
|
|
def test_autoconfigure_access_fills_unset(monkeypatch: pytest.MonkeyPatch) -> None:
|
|
monkeypatch.delenv("PHOTON_ALLOWED_USERS", raising=False)
|
|
monkeypatch.delenv("PHOTON_HOME_CHANNEL", raising=False)
|
|
|
|
cli._autoconfigure_access("+15551234567")
|
|
|
|
assert get_env_value("PHOTON_ALLOWED_USERS") == "+15551234567"
|
|
assert get_env_value("PHOTON_HOME_CHANNEL") == "+15551234567"
|
|
|
|
|
|
def test_autoconfigure_access_preserves_existing_allowlist(
|
|
monkeypatch: pytest.MonkeyPatch,
|
|
) -> None:
|
|
monkeypatch.delenv("PHOTON_ALLOWED_USERS", raising=False)
|
|
monkeypatch.delenv("PHOTON_HOME_CHANNEL", raising=False)
|
|
# A hand-tuned allowlist already in place must survive a setup re-run.
|
|
save_env_value("PHOTON_ALLOWED_USERS", "+19998887777,+15551112222")
|
|
|
|
cli._autoconfigure_access("+15551234567")
|
|
|
|
assert get_env_value("PHOTON_ALLOWED_USERS") == "+19998887777,+15551112222"
|
|
# The still-unset home channel is filled.
|
|
assert get_env_value("PHOTON_HOME_CHANNEL") == "+15551234567"
|