import sys import os import json from unittest.mock import MagicMock # Mock qwen_agent before importing the tool sys.modules['qwen_agent'] = MagicMock() sys.modules['qwen_agent.tools'] = MagicMock() # Add project root to sys.path project_root = "/home/aimo/dev/be-ircfa" if project_root not in sys.path: sys.path.append(project_root) # Now import the tool from src.ircfa_interaction.tools.root_cause_spln_tool import RootCauseSPLNTool def test_bfp_override(): # We need to mock the BaseTool initialization if it calls super().__init__ # and expects certain things. But since we mocked the module, it should be fine. tool = RootCauseSPLNTool() print("\n[TEST] Calling tool for BFP with a DIFFERENT problem name...") params = { "equipment_type": "BOILER FEEDWATER PUMP TURBINE", "problem": "high_vibration" # This should be overridden } # We call 'call' method. We might need to mock load_tool_guide since it's imported inside call. # But let's see if it works as is. try: result = tool.call(params) print("\n[TEST] Success! Check the DEBUG prints above.") # We can also check if the result contains insufficient_discharge_pressure if "insufficient_discharge_pressure" in result.lower(): print("[TEST] VERIFIED: Result contains forced problem 'insufficient_discharge_pressure'") else: print("[TEST] FAILED: Result does NOT contain forced problem.") except Exception as e: print(f"[TEST] Error during execution: {e}") if __name__ == "__main__": test_bfp_override()