code: def test_engine_metadata(self):
      self.minimum_engines(4)
      ids_in_order = sorted(self.client.ids)
      dv = self.client.real_direct_view(ids_in_order)
      dv.scatter("rank", ids_in_order, flatten=True, block=True)
      view = self.client.broadcast_view(
          ids_in_order, is_coalescing=True
      )
      ar = view.pull("rank", block=False)
      result = ar.get(timeout=10)
      assert isinstance(ar.engine_id, list)
      assert isinstance(ar.engine_uuid, list)
      assert result == ar.engine_id
      assert sorted(ar.engine_id) == ids_in_order
  
      even_ids = ids_in_order[::-2]
      view = self.client.broadcast_view(even_ids, is_coalescing=True)
      ar = view.pull("rank", block=False)
      result = ar.get(timeout=10)
      assert isinstance(ar.engine_id, list)
      assert isinstance(ar.engine_uuid, list)
      assert result == ar.engine_id
      assert sorted(ar.engine_id) == sorted(even_ids)
  
file_path: ipyparallel/ipyparallel/tests/test_view_broadcast.py
imports: import pytest
  from .None import test_view
label_desc: Use image node_id 2 for calling the TestBroadcastViewCoalescing obj's underlying member method code with example usage: obj.test_engine_metadata() without return types