code: def test_construct_url_with_failure_reason_and_extra_info(self):
      mock_accountId = "12345678910"
      mock_mode = Mode.LOCAL_CONTAINER
      mock_status = "0"
      mock_failure_reason = str(MOCK_EXCEPTION)
      mock_failure_type = MOCK_EXCEPTION.__class__.__name__
      mock_extra_info = "mock_extra_info"
      mock_region = "us-west-2"
  
      ret_url = _construct_url(
          accountId=mock_accountId,
          mode=mock_mode,
          status=mock_status,
          failure_reason=mock_failure_reason,
          failure_type=mock_failure_type,
          extra_info=mock_extra_info,
          region=mock_region,
      )
  
      expected_base_url = (
          f"https://dev-exp-t-{mock_region}.s3.{mock_region}.amazonaws.com/telemetry?"
          f"x-accountId={mock_accountId}"
          f"&x-mode={mock_mode}"
          f"&x-status={mock_status}"
          f"&x-failureReason={mock_failure_reason}"
          f"&x-failureType={mock_failure_type}"
          f"&x-extra={mock_extra_info}"
      )
      self.assertEquals(ret_url, expected_base_url)
  
file_path: sagemaker-python-sdk/tests/unit/sagemaker/serve/utils/test_telemetry_logger.py
imports: from __future__ import absolute_import
  import unittest
  from unittest.mock import Mock, patch
  from sagemaker.serve import Mode, ModelServer
  from sagemaker.serve.utils.telemetry_logger import _send_telemetry, _capture_telemetry, _construct_url
  from sagemaker.serve.utils.exceptions import ModelBuilderException, LocalModelOutOfMemoryException
label_desc: Use image node_id 7 for calling the TestTelemetryLogger obj's underlying member method code with example usage: obj.test_construct_url_with_failure_reason_and_extra_info() without return types