_channelz_servicer_test.py
Go to the documentation of this file.
1 # Copyright 2018 The gRPC Authors
2 #
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
6 #
7 # http://www.apache.org/licenses/LICENSE-2.0
8 #
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
14 """Tests of grpc_channelz.v1.channelz."""
15 
16 from concurrent import futures
17 import sys
18 import unittest
19 
20 import grpc
21 from grpc_channelz.v1 import channelz
22 from grpc_channelz.v1 import channelz_pb2
23 from grpc_channelz.v1 import channelz_pb2_grpc
24 
25 from tests.unit import test_common
26 from tests.unit.framework.common import test_constants
27 
28 _SUCCESSFUL_UNARY_UNARY = '/test/SuccessfulUnaryUnary'
29 _FAILED_UNARY_UNARY = '/test/FailedUnaryUnary'
30 _SUCCESSFUL_STREAM_STREAM = '/test/SuccessfulStreamStream'
31 
32 _REQUEST = b'\x00\x00\x00'
33 _RESPONSE = b'\x01\x01\x01'
34 
35 _DISABLE_REUSE_PORT = (('grpc.so_reuseport', 0),)
36 _ENABLE_CHANNELZ = (('grpc.enable_channelz', 1),)
37 _DISABLE_CHANNELZ = (('grpc.enable_channelz', 0),)
38 
39 
40 def _successful_unary_unary(request, servicer_context):
41  return _RESPONSE
42 
43 
44 def _failed_unary_unary(request, servicer_context):
45  servicer_context.set_code(grpc.StatusCode.INTERNAL)
46  servicer_context.set_details("Channelz Test Intended Failure")
47 
48 
49 def _successful_stream_stream(request_iterator, servicer_context):
50  for _ in request_iterator:
51  yield _RESPONSE
52 
53 
55 
56  def service(self, handler_call_details):
57  if handler_call_details.method == _SUCCESSFUL_UNARY_UNARY:
58  return grpc.unary_unary_rpc_method_handler(_successful_unary_unary)
59  elif handler_call_details.method == _FAILED_UNARY_UNARY:
60  return grpc.unary_unary_rpc_method_handler(_failed_unary_unary)
61  elif handler_call_details.method == _SUCCESSFUL_STREAM_STREAM:
63  _successful_stream_stream)
64  else:
65  return None
66 
67 
68 class _ChannelServerPair(object):
69 
70  def __init__(self):
71  # Server will enable channelz service
72  self.server = grpc.server(futures.ThreadPoolExecutor(max_workers=3),
73  options=_DISABLE_REUSE_PORT +
74  _ENABLE_CHANNELZ)
75  port = self.server.add_insecure_port('[::]:0')
76  self.server.add_generic_rpc_handlers((_GenericHandler(),))
77  self.server.start()
78 
79  # Channel will enable channelz service...
80  self.channel = grpc.insecure_channel('localhost:%d' % port,
81  _ENABLE_CHANNELZ)
82 
83 
85  return [_ChannelServerPair() for i in range(n)]
86 
87 
89  for pair in pairs:
90  pair.server.stop(None)
91  pair.channel.close()
92 
93 
94 @unittest.skipIf(sys.version_info[0] < 3,
95  'ProtoBuf descriptor has moved on from Python2')
96 class ChannelzServicerTest(unittest.TestCase):
97 
99  _, r = self._pairs[idx].channel.unary_unary(
100  _SUCCESSFUL_UNARY_UNARY).with_call(_REQUEST)
101  self.assertEqual(r.code(), grpc.StatusCode.OK)
102 
103  def _send_failed_unary_unary(self, idx):
104  try:
105  self._pairs[idx].channel.unary_unary(_FAILED_UNARY_UNARY).with_call(
106  _REQUEST)
107  except grpc.RpcError:
108  return
109  else:
110  self.fail("This call supposed to fail")
111 
113  response_iterator = self._pairs[idx].channel.stream_stream(
114  _SUCCESSFUL_STREAM_STREAM).__call__(
115  iter([_REQUEST] * test_constants.STREAM_LENGTH))
116  cnt = 0
117  for _ in response_iterator:
118  cnt += 1
119  self.assertEqual(cnt, test_constants.STREAM_LENGTH)
120 
121  def _get_channel_id(self, idx):
122  """Channel id may not be consecutive"""
123  resp = self._channelz_stub.GetTopChannels(
124  channelz_pb2.GetTopChannelsRequest(start_channel_id=0))
125  self.assertGreater(len(resp.channel), idx)
126  return resp.channel[idx].ref.channel_id
127 
128  def setUp(self):
129  self._pairs = []
130  # This server is for Channelz info fetching only
131  # It self should not enable Channelz
132  self._server = grpc.server(futures.ThreadPoolExecutor(max_workers=3),
133  options=_DISABLE_REUSE_PORT +
134  _DISABLE_CHANNELZ)
135  port = self._server.add_insecure_port('[::]:0')
136  channelz.add_channelz_servicer(self._server)
137  self._server.start()
138 
139  # This channel is used to fetch Channelz info only
140  # Channelz should not be enabled
141  self._channel = grpc.insecure_channel('localhost:%d' % port,
142  _DISABLE_CHANNELZ)
143  self._channelz_stub = channelz_pb2_grpc.ChannelzStub(self._channel)
144 
145  def tearDown(self):
146  self._server.stop(None)
147  self._channel.close()
149 
152  resp = self._channelz_stub.GetTopChannels(
153  channelz_pb2.GetTopChannelsRequest(start_channel_id=0))
154  self.assertEqual(len(resp.channel), 1)
155  self.assertEqual(resp.end, True)
156 
159  resp = self._channelz_stub.GetTopChannels(
160  channelz_pb2.GetTopChannelsRequest(start_channel_id=10000))
161  self.assertEqual(len(resp.channel), 0)
162  self.assertEqual(resp.end, True)
163 
167  resp = self._channelz_stub.GetChannel(
168  channelz_pb2.GetChannelRequest(channel_id=self._get_channel_id(0)))
169  self.assertEqual(resp.channel.data.calls_started, 1)
170  self.assertEqual(resp.channel.data.calls_succeeded, 1)
171  self.assertEqual(resp.channel.data.calls_failed, 0)
172 
176  resp = self._channelz_stub.GetChannel(
177  channelz_pb2.GetChannelRequest(channel_id=self._get_channel_id(0)))
178  self.assertEqual(resp.channel.data.calls_started, 1)
179  self.assertEqual(resp.channel.data.calls_succeeded, 0)
180  self.assertEqual(resp.channel.data.calls_failed, 1)
181 
184  k_success = 7
185  k_failed = 9
186  for i in range(k_success):
188  for i in range(k_failed):
190  resp = self._channelz_stub.GetChannel(
191  channelz_pb2.GetChannelRequest(channel_id=self._get_channel_id(0)))
192  self.assertEqual(resp.channel.data.calls_started, k_success + k_failed)
193  self.assertEqual(resp.channel.data.calls_succeeded, k_success)
194  self.assertEqual(resp.channel.data.calls_failed, k_failed)
195 
196  def test_many_channel(self):
197  k_channels = 4
198  self._pairs = _generate_channel_server_pairs(k_channels)
199  resp = self._channelz_stub.GetTopChannels(
200  channelz_pb2.GetTopChannelsRequest(start_channel_id=0))
201  self.assertEqual(len(resp.channel), k_channels)
202 
204  k_channels = 4
205  self._pairs = _generate_channel_server_pairs(k_channels)
206  k_success = 11
207  k_failed = 13
208  for i in range(k_success):
211  for i in range(k_failed):
214 
215  # The first channel saw only successes
216  resp = self._channelz_stub.GetChannel(
217  channelz_pb2.GetChannelRequest(channel_id=self._get_channel_id(0)))
218  self.assertEqual(resp.channel.data.calls_started, k_success)
219  self.assertEqual(resp.channel.data.calls_succeeded, k_success)
220  self.assertEqual(resp.channel.data.calls_failed, 0)
221 
222  # The second channel saw only failures
223  resp = self._channelz_stub.GetChannel(
224  channelz_pb2.GetChannelRequest(channel_id=self._get_channel_id(1)))
225  self.assertEqual(resp.channel.data.calls_started, k_failed)
226  self.assertEqual(resp.channel.data.calls_succeeded, 0)
227  self.assertEqual(resp.channel.data.calls_failed, k_failed)
228 
229  # The third channel saw both successes and failures
230  resp = self._channelz_stub.GetChannel(
231  channelz_pb2.GetChannelRequest(channel_id=self._get_channel_id(2)))
232  self.assertEqual(resp.channel.data.calls_started, k_success + k_failed)
233  self.assertEqual(resp.channel.data.calls_succeeded, k_success)
234  self.assertEqual(resp.channel.data.calls_failed, k_failed)
235 
236  # The fourth channel saw nothing
237  resp = self._channelz_stub.GetChannel(
238  channelz_pb2.GetChannelRequest(channel_id=self._get_channel_id(3)))
239  self.assertEqual(resp.channel.data.calls_started, 0)
240  self.assertEqual(resp.channel.data.calls_succeeded, 0)
241  self.assertEqual(resp.channel.data.calls_failed, 0)
242 
244  k_channels = 4
245  self._pairs = _generate_channel_server_pairs(k_channels)
246  k_success = 17
247  k_failed = 19
248  for i in range(k_success):
251  for i in range(k_failed):
254 
255  gtc_resp = self._channelz_stub.GetTopChannels(
256  channelz_pb2.GetTopChannelsRequest(start_channel_id=0))
257  self.assertEqual(len(gtc_resp.channel), k_channels)
258  for i in range(k_channels):
259  # If no call performed in the channel, there shouldn't be any subchannel
260  if gtc_resp.channel[i].data.calls_started == 0:
261  self.assertEqual(len(gtc_resp.channel[i].subchannel_ref), 0)
262  continue
263 
264  # Otherwise, the subchannel should exist
265  self.assertGreater(len(gtc_resp.channel[i].subchannel_ref), 0)
266  gsc_resp = self._channelz_stub.GetSubchannel(
267  channelz_pb2.GetSubchannelRequest(
268  subchannel_id=gtc_resp.channel[i].subchannel_ref[0].
269  subchannel_id))
270  self.assertEqual(gtc_resp.channel[i].data.calls_started,
271  gsc_resp.subchannel.data.calls_started)
272  self.assertEqual(gtc_resp.channel[i].data.calls_succeeded,
273  gsc_resp.subchannel.data.calls_succeeded)
274  self.assertEqual(gtc_resp.channel[i].data.calls_failed,
275  gsc_resp.subchannel.data.calls_failed)
276 
277  def test_server_basic(self):
279  resp = self._channelz_stub.GetServers(
280  channelz_pb2.GetServersRequest(start_server_id=0))
281  self.assertEqual(len(resp.server), 1)
282 
285  gss_resp = self._channelz_stub.GetServers(
286  channelz_pb2.GetServersRequest(start_server_id=0))
287  self.assertEqual(len(gss_resp.server), 1)
288  gs_resp = self._channelz_stub.GetServer(
289  channelz_pb2.GetServerRequest(
290  server_id=gss_resp.server[0].ref.server_id))
291  self.assertEqual(gss_resp.server[0].ref.server_id,
292  gs_resp.server.ref.server_id)
293 
294  def test_server_call(self):
296  k_success = 23
297  k_failed = 29
298  for i in range(k_success):
300  for i in range(k_failed):
302 
303  resp = self._channelz_stub.GetServers(
304  channelz_pb2.GetServersRequest(start_server_id=0))
305  self.assertEqual(len(resp.server), 1)
306  self.assertEqual(resp.server[0].data.calls_started,
307  k_success + k_failed)
308  self.assertEqual(resp.server[0].data.calls_succeeded, k_success)
309  self.assertEqual(resp.server[0].data.calls_failed, k_failed)
310 
312  k_channels = 4
313  self._pairs = _generate_channel_server_pairs(k_channels)
314  k_success = 3
315  k_failed = 5
316  for i in range(k_success):
319  for i in range(k_failed):
322 
323  gtc_resp = self._channelz_stub.GetTopChannels(
324  channelz_pb2.GetTopChannelsRequest(start_channel_id=0))
325  self.assertEqual(len(gtc_resp.channel), k_channels)
326  for i in range(k_channels):
327  # If no call performed in the channel, there shouldn't be any subchannel
328  if gtc_resp.channel[i].data.calls_started == 0:
329  self.assertEqual(len(gtc_resp.channel[i].subchannel_ref), 0)
330  continue
331 
332  # Otherwise, the subchannel should exist
333  self.assertGreater(len(gtc_resp.channel[i].subchannel_ref), 0)
334  gsc_resp = self._channelz_stub.GetSubchannel(
335  channelz_pb2.GetSubchannelRequest(
336  subchannel_id=gtc_resp.channel[i].subchannel_ref[0].
337  subchannel_id))
338  self.assertEqual(len(gsc_resp.subchannel.socket_ref), 1)
339 
340  gs_resp = self._channelz_stub.GetSocket(
341  channelz_pb2.GetSocketRequest(
342  socket_id=gsc_resp.subchannel.socket_ref[0].socket_id))
343  self.assertEqual(gsc_resp.subchannel.data.calls_started,
344  gs_resp.socket.data.streams_started)
345  self.assertEqual(gsc_resp.subchannel.data.calls_started,
346  gs_resp.socket.data.streams_succeeded)
347  # Calls started == messages sent, only valid for unary calls
348  self.assertEqual(gsc_resp.subchannel.data.calls_started,
349  gs_resp.socket.data.messages_sent)
350  # Only receive responses when the RPC was successful
351  self.assertEqual(gsc_resp.subchannel.data.calls_succeeded,
352  gs_resp.socket.data.messages_received)
353 
354  if gs_resp.socket.remote.HasField("tcpip_address"):
355  address = gs_resp.socket.remote.tcpip_address.ip_address
356  self.assertTrue(
357  len(address) == 4 or len(address) == 16, address)
358  if gs_resp.socket.local.HasField("tcpip_address"):
359  address = gs_resp.socket.local.tcpip_address.ip_address
360  self.assertTrue(
361  len(address) == 4 or len(address) == 16, address)
362 
365  # In C++, the argument for _send_successful_stream_stream is message length.
366  # Here the argument is still channel idx, to be consistent with the other two.
368 
369  gc_resp = self._channelz_stub.GetChannel(
370  channelz_pb2.GetChannelRequest(channel_id=self._get_channel_id(0)))
371  self.assertEqual(gc_resp.channel.data.calls_started, 1)
372  self.assertEqual(gc_resp.channel.data.calls_succeeded, 1)
373  self.assertEqual(gc_resp.channel.data.calls_failed, 0)
374  # Subchannel exists
375  self.assertGreater(len(gc_resp.channel.subchannel_ref), 0)
376 
377  while True:
378  gsc_resp = self._channelz_stub.GetSubchannel(
379  channelz_pb2.GetSubchannelRequest(
380  subchannel_id=gc_resp.channel.subchannel_ref[0].
381  subchannel_id))
382  if gsc_resp.subchannel.data.calls_started == gsc_resp.subchannel.data.calls_succeeded + gsc_resp.subchannel.data.calls_failed:
383  break
384  self.assertEqual(gsc_resp.subchannel.data.calls_started, 1)
385  self.assertEqual(gsc_resp.subchannel.data.calls_failed, 0)
386  self.assertEqual(gsc_resp.subchannel.data.calls_succeeded, 1)
387  # Socket exists
388  self.assertEqual(len(gsc_resp.subchannel.socket_ref), 1)
389 
390  while True:
391  gs_resp = self._channelz_stub.GetSocket(
392  channelz_pb2.GetSocketRequest(
393  socket_id=gsc_resp.subchannel.socket_ref[0].socket_id))
394  if gs_resp.socket.data.streams_started == gs_resp.socket.data.streams_succeeded + gs_resp.socket.data.streams_failed:
395  break
396  self.assertEqual(gs_resp.socket.data.streams_started, 1)
397  self.assertEqual(gs_resp.socket.data.streams_succeeded, 1)
398  self.assertEqual(gs_resp.socket.data.streams_failed, 0)
399  self.assertEqual(gs_resp.socket.data.messages_sent,
400  test_constants.STREAM_LENGTH)
401  self.assertEqual(gs_resp.socket.data.messages_received,
402  test_constants.STREAM_LENGTH)
403 
408 
409  gs_resp = self._channelz_stub.GetServers(
410  channelz_pb2.GetServersRequest(start_server_id=0))
411  self.assertEqual(len(gs_resp.server), 1)
412  self.assertEqual(gs_resp.server[0].data.calls_started, 2)
413  self.assertEqual(gs_resp.server[0].data.calls_succeeded, 1)
414  self.assertEqual(gs_resp.server[0].data.calls_failed, 1)
415 
416  gss_resp = self._channelz_stub.GetServerSockets(
417  channelz_pb2.GetServerSocketsRequest(
418  server_id=gs_resp.server[0].ref.server_id, start_socket_id=0))
419  # If the RPC call failed, it will raise a grpc.RpcError
420  # So, if there is no exception raised, considered pass
421 
424 
425  gss_resp = self._channelz_stub.GetServers(
426  channelz_pb2.GetServersRequest(start_server_id=0))
427  self.assertEqual(len(gss_resp.server), 1)
428  self.assertEqual(len(gss_resp.server[0].listen_socket), 1)
429 
430  gs_resp = self._channelz_stub.GetSocket(
431  channelz_pb2.GetSocketRequest(
432  socket_id=gss_resp.server[0].listen_socket[0].socket_id))
433 
434  # If the RPC call failed, it will raise a grpc.RpcError
435  # So, if there is no exception raised, considered pass
436 
438  try:
439  self._channelz_stub.GetServer(
440  channelz_pb2.GetServerRequest(server_id=10000))
441  except BaseException as e:
442  self.assertIn('StatusCode.NOT_FOUND', str(e))
443  else:
444  self.fail('Invalid query not detected')
445 
447  try:
448  self._channelz_stub.GetChannel(
449  channelz_pb2.GetChannelRequest(channel_id=10000))
450  except BaseException as e:
451  self.assertIn('StatusCode.NOT_FOUND', str(e))
452  else:
453  self.fail('Invalid query not detected')
454 
456  try:
457  self._channelz_stub.GetSubchannel(
458  channelz_pb2.GetSubchannelRequest(subchannel_id=10000))
459  except BaseException as e:
460  self.assertIn('StatusCode.NOT_FOUND', str(e))
461  else:
462  self.fail('Invalid query not detected')
463 
465  try:
466  self._channelz_stub.GetSocket(
467  channelz_pb2.GetSocketRequest(socket_id=10000))
468  except BaseException as e:
469  self.assertIn('StatusCode.NOT_FOUND', str(e))
470  else:
471  self.fail('Invalid query not detected')
472 
474  try:
475  self._channelz_stub.GetServerSockets(
476  channelz_pb2.GetServerSocketsRequest(
477  server_id=10000,
478  start_socket_id=0,
479  ))
480  except BaseException as e:
481  self.assertIn('StatusCode.NOT_FOUND', str(e))
482  else:
483  self.fail('Invalid query not detected')
484 
485 
486 if __name__ == '__main__':
487  unittest.main(verbosity=2)
tests.channelz._channelz_servicer_test.ChannelzServicerTest.test_invalid_query_get_socket
def test_invalid_query_get_socket(self)
Definition: _channelz_servicer_test.py:464
xds_interop_client.str
str
Definition: xds_interop_client.py:487
grpc.unary_unary_rpc_method_handler
def unary_unary_rpc_method_handler(behavior, request_deserializer=None, response_serializer=None)
Definition: src/python/grpcio/grpc/__init__.py:1510
grpc.insecure_channel
def insecure_channel(target, options=None, compression=None)
Definition: src/python/grpcio/grpc/__init__.py:1962
tests.channelz._channelz_servicer_test.ChannelzServicerTest._channel
_channel
Definition: _channelz_servicer_test.py:141
tests.channelz._channelz_servicer_test._ChannelServerPair.server
server
Definition: _channelz_servicer_test.py:72
tests.channelz._channelz_servicer_test.ChannelzServicerTest
Definition: _channelz_servicer_test.py:96
tests.channelz._channelz_servicer_test.ChannelzServicerTest.test_get_top_channels_basic
def test_get_top_channels_basic(self)
Definition: _channelz_servicer_test.py:150
tests.channelz._channelz_servicer_test.ChannelzServicerTest.test_invalid_query_get_subchannel
def test_invalid_query_get_subchannel(self)
Definition: _channelz_servicer_test.py:455
capstone.range
range
Definition: third_party/bloaty/third_party/capstone/bindings/python/capstone/__init__.py:6
tests.channelz._channelz_servicer_test.ChannelzServicerTest.test_get_top_channels_high_start_id
def test_get_top_channels_high_start_id(self)
Definition: _channelz_servicer_test.py:157
tests.channelz._channelz_servicer_test.ChannelzServicerTest.setUp
def setUp(self)
Definition: _channelz_servicer_test.py:128
tests.channelz._channelz_servicer_test.ChannelzServicerTest.test_successful_request
def test_successful_request(self)
Definition: _channelz_servicer_test.py:164
tests.channelz._channelz_servicer_test.ChannelzServicerTest.test_failed_request
def test_failed_request(self)
Definition: _channelz_servicer_test.py:173
grpc.RpcError
Definition: src/python/grpcio/grpc/__init__.py:302
tests.channelz._channelz_servicer_test.ChannelzServicerTest.test_invalid_query_get_server
def test_invalid_query_get_server(self)
Definition: _channelz_servicer_test.py:437
tests.channelz._channelz_servicer_test.ChannelzServicerTest.test_streaming_rpc
def test_streaming_rpc(self)
Definition: _channelz_servicer_test.py:363
tests.channelz._channelz_servicer_test._successful_stream_stream
def _successful_stream_stream(request_iterator, servicer_context)
Definition: _channelz_servicer_test.py:49
tests.channelz._channelz_servicer_test.ChannelzServicerTest._channelz_stub
_channelz_stub
Definition: _channelz_servicer_test.py:143
tests.channelz._channelz_servicer_test.ChannelzServicerTest._send_successful_stream_stream
def _send_successful_stream_stream(self, idx)
Definition: _channelz_servicer_test.py:112
tests.channelz._channelz_servicer_test.ChannelzServicerTest._send_failed_unary_unary
def _send_failed_unary_unary(self, idx)
Definition: _channelz_servicer_test.py:103
start
static uint64_t start
Definition: benchmark-pound.c:74
tests.channelz._channelz_servicer_test.ChannelzServicerTest._send_successful_unary_unary
def _send_successful_unary_unary(self, idx)
Definition: _channelz_servicer_test.py:98
tests.channelz._channelz_servicer_test._GenericHandler.service
def service(self, handler_call_details)
Definition: _channelz_servicer_test.py:56
tests.channelz._channelz_servicer_test.ChannelzServicerTest._server
_server
Definition: _channelz_servicer_test.py:132
tests.channelz._channelz_servicer_test.ChannelzServicerTest._get_channel_id
def _get_channel_id(self, idx)
Definition: _channelz_servicer_test.py:121
tests.channelz._channelz_servicer_test.ChannelzServicerTest.test_many_requests_many_channel
def test_many_requests_many_channel(self)
Definition: _channelz_servicer_test.py:203
tests.channelz._channelz_servicer_test._GenericHandler
Definition: _channelz_servicer_test.py:54
grpc.GenericRpcHandler
Definition: src/python/grpcio/grpc/__init__.py:1333
tests.channelz._channelz_servicer_test.ChannelzServicerTest.test_get_one_server
def test_get_one_server(self)
Definition: _channelz_servicer_test.py:283
tests.channelz._channelz_servicer_test.ChannelzServicerTest.test_server_sockets
def test_server_sockets(self)
Definition: _channelz_servicer_test.py:404
tests.channelz._channelz_servicer_test.ChannelzServicerTest.test_many_subchannels_and_sockets
def test_many_subchannels_and_sockets(self)
Definition: _channelz_servicer_test.py:311
close
#define close
Definition: test-fs.c:48
grpc.server
def server(thread_pool, handlers=None, interceptors=None, options=None, maximum_concurrent_rpcs=None, compression=None, xds=False)
Definition: src/python/grpcio/grpc/__init__.py:2034
tests.channelz._channelz_servicer_test._generate_channel_server_pairs
def _generate_channel_server_pairs(n)
Definition: _channelz_servicer_test.py:84
tests.channelz._channelz_servicer_test.ChannelzServicerTest.test_server_listen_sockets
def test_server_listen_sockets(self)
Definition: _channelz_servicer_test.py:422
tests.channelz._channelz_servicer_test._ChannelServerPair.__init__
def __init__(self)
Definition: _channelz_servicer_test.py:70
grpc_channelz.v1
Definition: src/python/grpcio_channelz/grpc_channelz/v1/__init__.py:1
tests.unit
Definition: src/python/grpcio_tests/tests/unit/__init__.py:1
tests.channelz._channelz_servicer_test.ChannelzServicerTest.test_server_call
def test_server_call(self)
Definition: _channelz_servicer_test.py:294
tests.channelz._channelz_servicer_test._ChannelServerPair
Definition: _channelz_servicer_test.py:68
tests.channelz._channelz_servicer_test._close_channel_server_pairs
def _close_channel_server_pairs(pairs)
Definition: _channelz_servicer_test.py:88
tests.channelz._channelz_servicer_test.ChannelzServicerTest.test_server_basic
def test_server_basic(self)
Definition: _channelz_servicer_test.py:277
tests.channelz._channelz_servicer_test.ChannelzServicerTest._pairs
_pairs
Definition: _channelz_servicer_test.py:129
grpc.stream_stream_rpc_method_handler
def stream_stream_rpc_method_handler(behavior, request_deserializer=None, response_serializer=None)
Definition: src/python/grpcio/grpc/__init__.py:1570
tests.channelz._channelz_servicer_test._ChannelServerPair.channel
channel
Definition: _channelz_servicer_test.py:80
tests.channelz._channelz_servicer_test.ChannelzServicerTest.test_many_subchannels
def test_many_subchannels(self)
Definition: _channelz_servicer_test.py:243
stop
static const char stop[]
Definition: benchmark-async-pummel.c:35
tests.channelz._channelz_servicer_test.ChannelzServicerTest.test_invalid_query_get_channel
def test_invalid_query_get_channel(self)
Definition: _channelz_servicer_test.py:446
tests.channelz._channelz_servicer_test.ChannelzServicerTest.test_invalid_query_get_server_sockets
def test_invalid_query_get_server_sockets(self)
Definition: _channelz_servicer_test.py:473
iter
Definition: test_winkernel.cpp:47
tests.unit.framework.common
Definition: src/python/grpcio_tests/tests/unit/framework/common/__init__.py:1
tests.channelz._channelz_servicer_test.ChannelzServicerTest.tearDown
def tearDown(self)
Definition: _channelz_servicer_test.py:145
len
int len
Definition: abseil-cpp/absl/base/internal/low_level_alloc_test.cc:46
tests.channelz._channelz_servicer_test._failed_unary_unary
def _failed_unary_unary(request, servicer_context)
Definition: _channelz_servicer_test.py:44
tests.channelz._channelz_servicer_test.ChannelzServicerTest.test_many_requests
def test_many_requests(self)
Definition: _channelz_servicer_test.py:182
tests.channelz._channelz_servicer_test._successful_unary_unary
def _successful_unary_unary(request, servicer_context)
Definition: _channelz_servicer_test.py:40
tests.channelz._channelz_servicer_test.ChannelzServicerTest.test_many_channel
def test_many_channel(self)
Definition: _channelz_servicer_test.py:196


grpc
Author(s):
autogenerated on Fri May 16 2025 02:57:38