code: def getDevices(self):  # noqa: N802
      return [
          {
              "user process id": str(OTHER_PID),
              "average board temp": "20C",
              "average die temp": "25C",
              "board ipu index": "1",
              "board type": "C2",
              "clock": "1300MHz",
              "id": "0",
              "ipu power": "120W",
              "ipu utilisation": "21.25%",
              "ipu utilisation (session)": "15.65%",
          },
          {
              "user process id": str(CURRENT_PID),
              "average board temp": "30C",
              "average die temp": "39C",
              "board ipu index": "1",
              "board type": "C2",
              "clock": "1300MHz",
              "id": "1",
              "ipu power": "120W",
              "ipu utilisation": "21.25%",
              "ipu utilisation (session)": "15.65%",
          },
          {
              "average board temp": "20C",
              "average die temp": "39C",
              "board ipu index": "1",
              "board type": "C2",
              "clock": "1300MHz",
              "id": "2",
              "ipu power": "120W",
              "ipu utilisation": "21.25%",
              "ipu utilisation (session)": "15.65%",
          },
      ]
  
file_path: wandb/tests/pytest_tests/unit_tests/test_system_metrics/test_ipu.py
imports: import threading
  import time
  from unittest import mock
  import wandb
  from wandb.sdk.internal.settings_static import SettingsStatic
  from wandb.sdk.internal.system.assets import IPU
  from wandb.sdk.internal.system.assets.ipu import IPUStats
  from wandb.sdk.internal.system.system_monitor import AssetInterface
label_desc: Use image node_id 3 for calling the MockGcIpuInfo obj's underlying member method code with example usage: obj.getDevices() and returns: list