fix: normalize empty fast status to normal without changing tier
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
from types import SimpleNamespace
|
||||
import pytest
|
||||
from tui_gateway import methods_config_set as config
|
||||
|
||||
|
||||
@pytest.mark.parametrize('tier,expected', [('', 'normal'), (None, 'normal'), ('priority', 'fast'), ('normal', 'normal'), ('auto', 'auto'), ('cold', 'cold')])
|
||||
@pytest.mark.parametrize('built', [True, False])
|
||||
def test_fast_status_preserves_tier_semantics_without_mutation(monkeypatch, tier, expected, built):
|
||||
session = {'agent': SimpleNamespace(service_tier=tier)} if built else {'create_service_tier_override': tier}
|
||||
replies = []
|
||||
monkeypatch.setattr(config, '_load_service_tier', lambda: tier, raising=False)
|
||||
monkeypatch.setattr(config, '_kv', lambda rid, key, value: replies.append((rid, key, value)))
|
||||
def forbidden(*args, **kwargs):
|
||||
pytest.fail('Status query must not write configuration')
|
||||
monkeypatch.setattr(config, '_write_config_key', forbidden, raising=False)
|
||||
config._set_fast(1, {'session_id': 'test'}, 'fast', 'status', session)
|
||||
assert replies == [(1, 'fast', expected)]
|
||||
if built:
|
||||
assert session['agent'].service_tier == tier
|
||||
else:
|
||||
assert session['create_service_tier_override'] == tier
|
||||
@@ -168,7 +168,7 @@ def _set_fast(rid, params, key, value, session):
|
||||
else:
|
||||
current_tier = _load_service_tier()
|
||||
if raw == "status":
|
||||
return _kv(rid, key, {"priority": "fast", None: "normal"}.get(current_tier, current_tier))
|
||||
return _kv(rid, key, {"priority": "fast", None: "normal", "": "normal"}.get(current_tier, current_tier))
|
||||
nv = _FAST_WORDS.get(raw, ("normal" if current_tier == "priority" else "fast") if raw in {"", "toggle"} else None)
|
||||
if nv is None:
|
||||
return _err(rid, 4002, f"unknown fast mode: {value}")
|
||||
|
||||
Reference in New Issue
Block a user