import unittest from baim.retrieval_audit import bm25 from baim.mind2web_smoke import normalize_task class RetrievalTests(unittest.TestCase): def test_broad_candidates_keep_tabs_without_allowing_sensitive_controls(self): rows=[dict(role='tab',name='Account'),dict(role='generic',name='Account',sensitive=True), dict(role='button',name='Other',enabled=False)] self.assertEqual(bm25('Account',rows),[0]) def test_history_excludes_current_and_future_actions(self): candidate=dict(tag='button',attributes='{}',backend_node_id='1') step=dict(pos_candidates=[candidate],neg_candidates=[],cleaned_html='', action_uid='a',operation=dict(op='CLICK')) task=dict(confirmed_task='Goal',action_reprs=['previous','current'],actions=[step,{**step,'action_uid':'b'}]) rows=list(normalize_task(task)) self.assertEqual(rows[0]['history'],[]) self.assertEqual(rows[1]['history'],['previous'])