Record trader mode no-trade feedback

This commit is contained in:
Codex
2026-05-21 16:06:47 +08:00
parent 0b79547d9f
commit 0ec5169278
6 changed files with 57 additions and 6 deletions
@@ -58,6 +58,25 @@ class ShadowPaperSampleCollectionServiceTests(unittest.TestCase):
self.assertIn("wait_for_executable_candidate_before_paper_ticket", payload["next_collection_actions"])
self.assertNotIn("build_shadow_paper_ticket_for_latest_candidate", payload["next_collection_actions"])
def test_records_explicit_no_trade_and_need_more_evidence_feedback(self) -> None:
now = datetime(2026, 5, 17, 12, 0, tzinfo=timezone.utc)
for agreement in ["no_trade", "need_more_evidence"]:
with self.subTest(agreement=agreement):
repository = _ObservationRepository(candidate_status="blocked")
service = ShadowPaperSampleCollectionService(repository=repository)
payload = service.record_daily_observation(
instrument_id=1,
operator_agreement=agreement,
operator_note=f"{agreement} from Trader Cockpit",
runtime_status={"current_blockers": []},
now=now,
)
self.assertEqual(payload["observation_status"], "operator_feedback_recorded")
self.assertEqual(payload["operator_agreement"], agreement)
self.assertEqual(repository.upsert_call["operator_agreement"], agreement)
class _ObservationRepository:
def __init__(self, *, candidate_status: str = "executable") -> None: