Недавно я запачкал свою руку, чтобы высмеивать вызовы gRPC в python с помощью MagicMock (), но мне не удалось смоделировать ответное сообщение gRPC, которое я получил.Вот фрагмент кода клиентского кода Python
def senor_read(self, server_end_point)
with grpc.insecure_channel(server_end_point) as grpc_channel:
grpc_stub = sensorservice_pb2_grpc.getsensorinfostub(grpc_channel)
sensor_response = yield grpc_stub.getsensorreading(sensorservice_pb2_grpc.request(
sensorname=name, account=account))
if sensor_response.ok:
print(" Successful sensor reading")
elf sensor_resonse.error:
raise Sensor_ErrorReading(why="Not able to read sensor)
return convert_resoonse_to_dict(sensor_response)
вот способ, которым я это высмеялзапрос gRPC к удаленному серверу, извлекает чтение и передает обратно вызывающей стороне.
Целью этого теста является выполнение кода в случае «eif» и перехват исключения.1) Когда я выполняю тестовый код, он не переходит к «эльфу», если регистр, и я вижу, что вызывающей стороне отправлено другое исключение.Правильно ли я устанавливаю состояние в макете ответа gRPC?
2) Правильно ли выполняются мои шутливые шаги для ложных вызовов gRPC?
3) Также, когда я запускаю, я не вижу распечатанные сообщения при успешном завершении, но только при распечатке тестового набора при сбое.Кроме того, распечатки в реальной функции не распечатываются?
Я много искал, не мог найти много информации о насмешке над gRPC в python.