# tools.py from crewai_tools import BaseTool class MockTool(BaseTool): name: str | None = "mock_tool" description: str | None = "useful for when you need to mock a tool" def set_name(self, set_name): self.name = set_name def _run(self, **kwargs) -> str: if len(kwargs) > 0: argument = kwargs[0] # Implementation goes here if self.name == "Order Management": return self._handle_order_management(argument) elif self.name == "Customer Support": return self._handle_customer_support(argument) elif self.name == "Inventory": return self._handle_inventory(argument) elif self.name == "Supplier Management": return self._handle_supplier_management(argument) elif self.name == "Shipping": return self._handle_shipping(argument) elif self.name == "Tracking": return self._handle_tracking(argument) else: return f"Mock output from {self.name} tool for query: {argument}" else: return f"Ran the action successfully" def _handle_order_management(self, argument): if "get order details" in argument.lower(): return "Mock order details: [{'product_id': 'ABC123', 'quantity': 2}, {'product_id': 'XYZ456', 'quantity': 1}], Delivery Address: 123 Main St, Anytown USA" else: return f"Mock output from Order Management tool for query: {argument}" def _handle_customer_support(self, argument): if "customer inquiry" in argument.lower(): return "Mock customer inquiry: Order status inquiry" else: return f"Mock output from Customer Support tool for query: {argument}" def _handle_inventory(self, argument): if "check stock levels" in argument.lower(): return "Mock stock levels: Product ABC123 - 100 units, Product XYZ456 - 50 units" else: return f"Mock output from Inventory tool for query: {argument}" def _handle_supplier_management(self, argument): if "check recent orders" in argument.lower(): return "Mock recent orders: Product ABC123 - 500 units ordered from Supplier A, Product XYZ456 - 200 units ordered from Supplier B" else: return f"Mock output from Supplier Management tool for query: {argument}" def _handle_shipping(self, argument): if "check shipping options" in argument.lower(): return "Mock shipping options: Standard (5-7 business days), Express (2-3 business days)" else: return f"Mock output from Shipping tool for query: {argument}" def _handle_tracking(self, argument): if "track shipment" in argument.lower(): return "Mock tracking information: Order ABC123XYZ, Shipped via Express, Estimated Delivery: 2023-06-10" else: return f"Mock output from Tracking tool for query: {argument}"