test: env-flag 'on' truthy behavior contract (#2863 follow-up)
This commit is contained in:
parent
60039d5a3a
commit
902b0b70e4
1 changed files with 49 additions and 0 deletions
49
tests/gateway/test_env_flag_truthy.py
Normal file
49
tests/gateway/test_env_flag_truthy.py
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
"""Env flags accept 'on' as truthy consistently (salvage of #2863).
|
||||
|
||||
Behavior contract: every env-driven enable flag in gateway config coerces
|
||||
through the shared TRUTHY_STRINGS set, so "on" behaves like "1"/"true"/"yes".
|
||||
"""
|
||||
|
||||
import os
|
||||
from unittest.mock import patch
|
||||
|
||||
from utils import TRUTHY_STRINGS, env_var_enabled
|
||||
|
||||
|
||||
def test_truthy_strings_include_on():
|
||||
assert "on" in TRUTHY_STRINGS
|
||||
|
||||
|
||||
def test_env_var_enabled_accepts_on():
|
||||
with patch.dict(os.environ, {"WHATSAPP_ENABLED": "on"}):
|
||||
assert env_var_enabled("WHATSAPP_ENABLED") is True
|
||||
|
||||
|
||||
def test_env_var_enabled_default_respected():
|
||||
with patch.dict(os.environ, {}, clear=False):
|
||||
os.environ.pop("SIGNAL_IGNORE_STORIES", None)
|
||||
assert env_var_enabled("SIGNAL_IGNORE_STORIES", "true") is True
|
||||
assert env_var_enabled("SIGNAL_IGNORE_STORIES") is False
|
||||
|
||||
|
||||
def test_gateway_config_flags_use_shared_helper():
|
||||
"""Invariant: no env-flag site in gateway/config.py hand-rolls a truthy
|
||||
set that omits 'on'."""
|
||||
import inspect
|
||||
|
||||
import gateway.config as gc
|
||||
|
||||
src = inspect.getsource(gc)
|
||||
for pattern in ('in {"true", "1", "yes"}', 'in ("true", "1", "yes")'):
|
||||
assert pattern not in src, f"hand-rolled truthy set without 'on': {pattern}"
|
||||
|
||||
|
||||
def test_desktop_gate_accepts_on():
|
||||
from tools.close_terminal_tool import check_close_terminal_requirements
|
||||
from tools.read_terminal_tool import check_read_terminal_requirements
|
||||
|
||||
with patch.dict(os.environ, {"HERMES_DESKTOP": "on"}):
|
||||
assert check_read_terminal_requirements() is True
|
||||
assert check_close_terminal_requirements() is True
|
||||
with patch.dict(os.environ, {"HERMES_DESKTOP": "off"}):
|
||||
assert check_read_terminal_requirements() is False
|
||||
Loading…
Add table
Add a link
Reference in a new issue