11"""Tests to validate measurement service. Uses the Sample Measurement Example."""
2+ import random
23from os import path
34
45import grpc
@@ -16,7 +17,7 @@ def test___measurement_service___get_metadata_rpc_call___returns_metadata():
1617 """End to End Test to validate GetMetadata RPC call with Sample Measurement."""
1718 measurement_service_port = _host_service ()
1819
19- with grpc . insecure_channel ( "localhost:" + measurement_service_port ) as channel :
20+ with _create_channel ( measurement_service_port ) as channel :
2021 stub = Measurement_pb2_grpc .MeasurementServiceStub (channel )
2122 get_metadata_response = stub .GetMetadata (Measurement_pb2 .GetMetadataRequest ())
2223
@@ -32,7 +33,29 @@ def test___measurement_service___measure_rpc_call___returns_output(
3233 """End to End Test to validate Measure RPC call with Sample Measurement."""
3334 measurement_service_port = _host_service ()
3435
35- with grpc .insecure_channel ("localhost:" + measurement_service_port ) as channel :
36+ with _create_channel (measurement_service_port ) as channel :
37+ stub = Measurement_pb2_grpc .MeasurementServiceStub (channel )
38+ request = _get_sample_measurement_measure_request (
39+ float_in , double_array_in , bool_in , string_in
40+ )
41+ measure_response = stub .Measure (request )
42+
43+ serialized_parameter = _get_serialized_measurement_parameters (
44+ float_in , double_array_in , bool_in , string_in
45+ )
46+ assert measure_response .outputs .value == serialized_parameter
47+
48+
49+ @pytest .mark .parametrize ("double_array_len" , [10000 , 100000 , 1000000 , 10000000 ]) # up to 80 MB
50+ def test___measurement_service___measure_with_large_array___returns_output (double_array_len ):
51+ """End to End Test to validate Measure RPC call with Sample Measurement."""
52+ measurement_service_port = _host_service ()
53+ float_in = 1.23
54+ double_array_in = [random .random () for i in range (double_array_len )]
55+ bool_in = False
56+ string_in = "InputString"
57+
58+ with _create_channel (measurement_service_port ) as channel :
3659 stub = Measurement_pb2_grpc .MeasurementServiceStub (channel )
3760 request = _get_sample_measurement_measure_request (
3861 float_in , double_array_in , bool_in , string_in
@@ -50,6 +73,16 @@ def _host_service() -> int:
5073 return str (measurement .sample_measurement_service .grpc_service .port )
5174
5275
76+ def _create_channel (port ):
77+ return grpc .insecure_channel (
78+ "localhost:" + port ,
79+ options = [
80+ ("grpc.max_receive_message_length" , - 1 ),
81+ ("grpc.max_send_message_length" , - 1 ),
82+ ],
83+ )
84+
85+
5386def _get_sample_measurement_measure_request (float_in , double_array_in , bool_in , string_in ):
5487
5588 request = Measurement_pb2 .MeasureRequest (
0 commit comments