def test_call_with_retries_includes_version_metadata(self):
   def digest(s):
     """Hashes a string into a 32-bit integer."""
     return int(hashlib.sha256(s.encode("utf-8")).hexdigest(), 16) & 0xffffffff
   def handler(request, context):
     metadata = context.invocation_metadata()
     client_version = grpc_util.extract_version(metadata)
     return make_response(digest(client_version))
   server = TestGrpcServer(handler)
   with server.run() as client:
     response = grpc_util.call_with_retries(client.TestRpc, make_request(0))
   expected_nonce = digest(
       grpc_util.extract_version(grpc_util.version_metadata()))
   self.assertEqual(make_response(expected_nonce), response)
 def test_roundtrip(self):
     result = grpc_util.extract_version(grpc_util.version_metadata())
     self.assertEqual(result, version.VERSION)
 def handler(request, context):
     metadata = context.invocation_metadata()
     client_version = grpc_util.extract_version(metadata)
     return make_response(digest(client_version))