code: def test_parse_rendezvous_endpoint_returns_tuple_if_endpoint_is_empty(
      self,
  ) -> None:
      endpoints = ["", "  "]
  
      for endpoint in endpoints:
          with self.subTest(endpoint=endpoint):
              host, port = parse_rendezvous_endpoint(
                  "", default_port=123
              )
  
              self.assertEqual(host, "localhost")
              self.assertEqual(port, 123)
  
imports: import threading
  import time
  import socket
  from datetime import timedelta
  from typing import List
  from unittest import TestCase
  from unittest.mock import patch
  from torch.distributed.elastic.rendezvous.utils import _PeriodicTimer, _delay, _matches_machine_hostname, _parse_rendezvous_config, _try_parse_port, parse_rendezvous_endpoint
label_desc: Use image node_id 9 for calling the UtilsTest obj's underlying member method code with example usage: obj.test_parse_rendezvous_endpoint_returns_tuple_if_endpoint_is_empty() without return types