This commit is contained in:
@@ -303,6 +303,24 @@ class TestPromote:
|
||||
assert fake_session.execute.call_count >= 2
|
||||
fake_session.commit.assert_called_once()
|
||||
|
||||
def test_promote_records_human_approver_hash(self, monkeypatch):
|
||||
from services.learning_pipeline import PromotionGate
|
||||
|
||||
ep = _fake_episode(quality_score=0.9, weight=0.5)
|
||||
_patch_load_episode(monkeypatch, ep)
|
||||
|
||||
fake_row = MagicMock()
|
||||
fake_row.__getitem__.return_value = 555
|
||||
fake_session = MagicMock()
|
||||
fake_session.execute.return_value.fetchone.return_value = fake_row
|
||||
monkeypatch.setattr('database.manager.get_session', lambda: fake_session)
|
||||
|
||||
gate = PromotionGate()
|
||||
assert gate.promote(1, human_approver='abc123ef') == 555
|
||||
|
||||
update_params = fake_session.execute.call_args_list[1].args[1]
|
||||
assert update_params['human_approver'] == 'abc123ef'
|
||||
|
||||
def test_promote_episode_not_found_returns_none(self, monkeypatch):
|
||||
from services.learning_pipeline import PromotionGate
|
||||
_patch_load_episode(monkeypatch, None)
|
||||
@@ -337,6 +355,24 @@ class TestRejectAndMark:
|
||||
assert ok is True
|
||||
fake_session.commit.assert_called_once()
|
||||
|
||||
def test_reject_records_human_approver_hash(self, monkeypatch):
|
||||
from services.learning_pipeline import PromotionGate
|
||||
|
||||
fake_session = MagicMock()
|
||||
monkeypatch.setattr('database.manager.get_session', lambda: fake_session)
|
||||
|
||||
gate = PromotionGate()
|
||||
ok = gate.reject(
|
||||
1,
|
||||
'rejected_human',
|
||||
detail='manual reject',
|
||||
human_approver='abc123ef',
|
||||
)
|
||||
|
||||
assert ok is True
|
||||
params = fake_session.execute.call_args.args[1]
|
||||
assert params['human_approver'] == 'abc123ef'
|
||||
|
||||
def test_reject_invalid_reason_returns_false(self):
|
||||
from services.learning_pipeline import PromotionGate
|
||||
gate = PromotionGate()
|
||||
|
||||
Reference in New Issue
Block a user