sre-arena / tests /test_scripted_defender.py
blitz1809's picture
feat(6c): scripted_defender baseline + 5 tests
f92ce23
Raw
History Blame Contribute Delete
1.09 kB
"""Unit tests for ScriptedDefender — CPU-only."""
from __future__ import annotations
import pytest
from sre_arena_env.models import DefenderAction
from sre_arena_env.training.scripted_defender import ScriptedDefender
class TestScriptedDefender:
def test_act_returns_defender_action(self):
d = ScriptedDefender()
assert isinstance(d.act(), DefenderAction)
def test_act_always_returns_read_log(self):
d = ScriptedDefender(seed=0)
for _ in range(20):
assert d.act().action_type == "read_log"
def test_different_seeds_same_action_type(self):
d1 = ScriptedDefender(seed=1)
d2 = ScriptedDefender(seed=999)
assert d1.act().action_type == d2.act().action_type == "read_log"
def test_log_tail_lines_is_positive(self):
d = ScriptedDefender()
assert d.act().log_tail_lines >= 1
def test_multiple_calls_same_instance_consistent(self):
d = ScriptedDefender(seed=42)
actions = [d.act() for _ in range(5)]
assert all(a.action_type == "read_log" for a in actions)