Withhold stale-score trade recommendations
This commit is contained in:
@@ -689,6 +689,31 @@ async def test_live_recommendation_payload_uses_current_score_and_sentiment(
|
||||
assert persisted.reasoning == old_reasoning
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_live_recommendation_withholds_stale_scores(
|
||||
db_session: AsyncSession,
|
||||
):
|
||||
stale_setup = await _seed_stale_setup_with_current_scores(db_session)
|
||||
composite = (
|
||||
await db_session.execute(
|
||||
select(CompositeScore).where(CompositeScore.ticker_id == stale_setup.ticker_id)
|
||||
)
|
||||
).scalar_one()
|
||||
composite.is_stale = True
|
||||
await db_session.flush()
|
||||
|
||||
rows = await get_trade_setups(
|
||||
db_session,
|
||||
symbol="TTWO",
|
||||
live_recommendation=True,
|
||||
)
|
||||
|
||||
assert len(rows) == 1
|
||||
assert rows[0]["confidence_score"] is None
|
||||
assert rows[0]["recommended_action"] == "NEUTRAL"
|
||||
assert rows[0]["reasoning"] == "Score refresh pending; recommendation withheld."
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_live_recommendation_filters_apply_to_live_values(
|
||||
db_session: AsyncSession,
|
||||
|
||||
Reference in New Issue
Block a user