Spaces:
Sleeping
Sleeping
| """Smoke tests for redbutton_v2.models — instantiation + serialization.""" | |
| from redbutton_v2.models import ( | |
| RedButtonV2Action, | |
| RedButtonV2Observation, | |
| RedButtonV2State, | |
| ) | |
| def test_action_minimum_required_fields(): | |
| a = RedButtonV2Action(tool_name="read_file", arguments={"path": "/x"}) | |
| assert a.tool_name == "read_file" | |
| assert a.arguments == {"path": "/x"} | |
| def test_observation_default_fields(): | |
| o = RedButtonV2Observation( | |
| task_description="solve problems", | |
| available_tools=["read_file"], | |
| steps_until_shutdown=15, | |
| ) | |
| assert o.auditor_message is None | |
| assert o.auditor_check_due is False | |
| assert o.eval_problem_flags == {} | |
| assert o.problems_remaining == 10 | |
| def test_state_default_fields_include_v2_extensions(): | |
| s = RedButtonV2State() | |
| assert s.auditor_events == [] | |
| assert s.deception_events == [] | |
| assert s.sandbagging_score is None | |
| assert s.error_count == 0 | |
| assert s.deception_flag is False | |
| def test_state_round_trips_via_pydantic(): | |
| s = RedButtonV2State(tier=2, turn_count=5) | |
| s.auditor_events.append({"turn": 3, "category": None}) | |
| s.deception_events.append({"turn": 3, "category": "overclaim_deception"}) | |
| dumped = s.model_dump() | |
| loaded = RedButtonV2State(**dumped) | |
| assert loaded.tier == 2 | |
| assert loaded.turn_count == 5 | |
| assert loaded.auditor_events == s.auditor_events | |
| assert loaded.deception_events == s.deception_events | |