import os import unittest from ai_planner import AIPlanner class TestAIPlannerActionEnforcement(unittest.TestCase): def setUp(self): os.environ.setdefault("ZAI_API_KEY", "dummy") def test_insert_move_before_place_entity_if_last_move_differs(self): actions = [ {"action": "craft_item", "params": {"item": "coal", "count": 1}}, {"action": "place_entity", "params": {"name": "stone-furnace", "x": 1, "y": 2, "direction": "north"}}, ] out = AIPlanner._ensure_move_before_build_actions(actions) self.assertEqual(out[0]["action"], "craft_item") self.assertEqual(out[1]["action"], "move") self.assertEqual(out[1]["params"]["x"], 1) self.assertEqual(out[1]["params"]["y"], 2) self.assertEqual(out[2]["action"], "place_entity") def test_do_not_insert_move_if_last_move_same_coords(self): actions = [ {"action": "move", "params": {"x": 1, "y": 2}, "reason": "test"}, {"action": "place_entity", "params": {"name": "stone-furnace", "x": 1, "y": 2, "direction": "north"}}, ] out = AIPlanner._ensure_move_before_build_actions(actions) self.assertEqual([a["action"] for a in out], ["move", "place_entity"])