Record trader mode no-trade feedback
This commit is contained in:
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user