fix(discord-bridge): plafonul de cost e optional (COST_CAP_USD_DAY=off)
Costul raportat de CLI e pretul echivalent la API; pe abonament nu se factureaza, deci plafonul zilnic oprea puntea fara motiv (5.71 / 5.00 USD). - limits.parse_cap(): `off`/`none`/`nelimitat`/`0`/gol/gunoi => fara plafon - stopped()/record_cost() nu mai opresc si nu mai alerteaza cand e dezactivat - implicit devine `off`; /status arata „(fara plafon)" - dashboard: /api/status si doctor nu mai crapa pe valoare ne-numerica - README + ops/env.example explica de ce ramane off pe abonament Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01B29CApsP1JkSdjYaGaHpE7
This commit is contained in:
@@ -78,6 +78,27 @@ def test_plafon_de_cost_opreste_botul(store):
|
||||
lim.admit("u1")
|
||||
|
||||
|
||||
def test_plafonul_off_nu_opreste_nimic(store, state_dir):
|
||||
import config
|
||||
(state_dir / "env").write_text("COST_CAP_USD_DAY=off\n")
|
||||
config.reload(state_dir)
|
||||
alerte = []
|
||||
lim = L.Limits(store, alerter=lambda *a, **k: alerte.append(a))
|
||||
assert lim.cost_cap == 0.0 and not lim.cap_enabled
|
||||
lim.record_cost(99.0, "1")
|
||||
assert not lim.stopped() and lim.cost_remaining() == float("inf")
|
||||
lim.admit("u1") # nu ridica CostCapReached
|
||||
assert alerte == []
|
||||
|
||||
|
||||
@pytest.mark.parametrize("raw, asteptat", [
|
||||
("off", 0.0), ("", 0.0), ("nelimitat", 0.0), ("0", 0.0), ("-3", 0.0),
|
||||
("5.00", 5.0), (" 2.5 ", 2.5), ("gunoi", 0.0), (None, 0.0),
|
||||
])
|
||||
def test_parse_cap(raw, asteptat):
|
||||
assert L.parse_cap(raw, 0.0) == pytest.approx(asteptat)
|
||||
|
||||
|
||||
def test_plafon_alerteaza_o_singura_data(store):
|
||||
alerte = []
|
||||
lim = mkl(store, cost_cap=0.5, alerter=lambda *a, **k: alerte.append(a))
|
||||
|
||||
Reference in New Issue
Block a user