code: def test_domain_gateway_user_code(domain_1_port, gateway_port):
      gateway_client: GatewayClient = sy.login_as_guest(
          port=gateway_port
      )
  
      domain_client: DomainClient = sy.login(
          port=domain_1_port,
          email="info@openmined.org",
          password="changethis",
      )
  
      input_data = np.array([1, 2, 3])
      mock_data = np.array([4, 5, 6])
  
      asset_name = random_hash()
      asset = sy.Asset(name=asset_name, data=input_data, mock=mock_data)
      dataset_name = random_hash()
      dataset = sy.Dataset(name=dataset_name, asset_list=[asset])
  
      dataset_res = domain_client.upload_dataset(dataset)
  
      assert isinstance(dataset_res, SyftSuccess)
  
      user_create_res = domain_client.register(
          name="Sheldon Cooper",
          email="sheldon@caltech.edu",
          password="changethis",
          password_verify="changethis",
          institution="Caltech",
          website="https://www.caltech.edu/",
      )
  
      assert isinstance(user_create_res, SyftSuccess)
  
      gateway_con_res = domain_client.connect_to_gateway(gateway_client)
      assert isinstance(gateway_con_res, SyftSuccess)
  
      proxy_client = gateway_client.domains[0]
  
      proxy_ds = proxy_client.login(
          email="sheldon@caltech.edu",
          password="changethis",
          password_verify="changethis",
      )
  
      asset = proxy_ds.datasets[0].assets[0]
  
      @sy.syft_function_single_use(asset=asset)
      def test_function(asset):
          return asset + 1
  
      test_function.code = dedent(test_function.code)
  
      request_res = proxy_ds.code.request_code_execution(test_function)
      assert isinstance(request_res, Request)
  
      assert len(domain_client.requests.get_all()) == 1
  
      req_approve_res = domain_client.requests[-1].approve()
      assert isinstance(req_approve_res, SyftSuccess)
  
      result = proxy_ds.code.test_function(asset=asset)
  
      final_result = result.get()
  
      assert (final_result == input_data + 1).all()
  
file_path: PySyft/tests/integration/network/gateway_test.py
imports: from textwrap import dedent
  import uuid
  import numpy
  import syft
  from syft.abstract_node import NodeType
  from syft.client.domain_client import DomainClient
  from syft.client.gateway_client import GatewayClient
  from syft.service.network.node_peer import NodePeer
  from syft.service.request.request import Request
  from syft.service.response import SyftSuccess
  from syft.service.user.user_roles import ServiceRole
label_desc: Use image node_id 3 for calling a global function with example usage: test_domain_gateway_user_code(domain_1_port, gateway_port) and returns: unknown