Skip to content

Commit df7cda3

Browse files
authored
Exposing ReadConditionValue and ReadMeasurementValue methods on ni.measurements.data.v1.client DataStoreClient (#297)
Signed-off-by: Hunter Kennon hunter.kennon@emerson.com
1 parent 72a2866 commit df7cda3

2 files changed

Lines changed: 53 additions & 0 deletions

File tree

packages/ni.measurements.data.v1.client/src/ni/measurements/data/v1/client/_client.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,3 +124,15 @@ def query_measurements(
124124
) -> data_store_service_pb2.QueryMeasurementsResponse:
125125
"""Query measurements using OData query syntax."""
126126
return self._get_stub().QueryMeasurements(request)
127+
128+
def read_condition_value(
129+
self, request: data_store_service_pb2.ReadConditionValueRequest
130+
) -> data_store_service_pb2.ReadConditionValueResponse:
131+
"""Read the value of a condition."""
132+
return self._get_stub().ReadConditionValue(request)
133+
134+
def read_measurement_value(
135+
self, request: data_store_service_pb2.ReadMeasurementValueRequest
136+
) -> data_store_service_pb2.ReadMeasurementValueResponse:
137+
"""Read the value of a measurement."""
138+
return self._get_stub().ReadMeasurementValue(request)

packages/ni.measurements.data.v1.client/tests/unit/test_data_store_client.py

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
from ni.measurements.data.v1.data_store_service_pb2_grpc import (
77
DataStoreServiceStub,
88
)
9+
from ni.protobuf.types import array_pb2, vector_pb2
910
from pytest_mock import MockerFixture
1011

1112
from ni.measurements.data.v1.client import DataStoreClient
@@ -248,6 +249,44 @@ def test__get_measurement__request_and_response_pass_through(
248249
assert stub_response == client_response
249250

250251

252+
def test__read_condition_value__request_and_response_pass_through(
253+
data_store_client: DataStoreClient, data_store_stub: Mock
254+
) -> None:
255+
client_request = data_store_service_types.ReadConditionValueRequest()
256+
client_request.condition_id = "6118CBCE-74A1-4DE8-9B3A-98DE34A3B837"
257+
stub_response = data_store_service_types.ReadConditionValueResponse()
258+
stub_response.vector.MergeFrom(
259+
vector_pb2.Vector(double_array=array_pb2.DoubleArray(values=[1.0, 2.0, 3.0]))
260+
)
261+
data_store_stub.ReadConditionValue.return_value = stub_response
262+
263+
client_response = data_store_client.read_condition_value(client_request)
264+
265+
data_store_stub.ReadConditionValue.assert_called_once()
266+
stub_request = data_store_stub.ReadConditionValue.call_args[0][0]
267+
assert stub_request == client_request
268+
assert stub_response == client_response
269+
270+
271+
def test__read_measurement_value__request_and_response_pass_through(
272+
data_store_client: DataStoreClient, data_store_stub: Mock
273+
) -> None:
274+
client_request = data_store_service_types.ReadMeasurementValueRequest()
275+
client_request.measurement_id = "6118CBCE-74A1-4DE8-9B3A-98DE34A3B837"
276+
stub_response = data_store_service_types.ReadMeasurementValueResponse()
277+
stub_response.vector.MergeFrom(
278+
vector_pb2.Vector(double_array=array_pb2.DoubleArray(values=[1.0, 2.0, 3.0]))
279+
)
280+
data_store_stub.ReadMeasurementValue.return_value = stub_response
281+
282+
client_response = data_store_client.read_measurement_value(client_request)
283+
284+
data_store_stub.ReadMeasurementValue.assert_called_once()
285+
stub_request = data_store_stub.ReadMeasurementValue.call_args[0][0]
286+
assert stub_request == client_request
287+
assert stub_response == client_response
288+
289+
251290
@pytest.fixture
252291
def data_store_client(
253292
mocker: MockerFixture,
@@ -280,4 +319,6 @@ def data_store_stub(mocker: MockerFixture) -> Mock:
280319
stub.QueryMeasurements = mocker.create_autospec(grpc.UnaryUnaryMultiCallable)
281320
stub.GetCondition = mocker.create_autospec(grpc.UnaryUnaryMultiCallable)
282321
stub.GetMeasurement = mocker.create_autospec(grpc.UnaryUnaryMultiCallable)
322+
stub.ReadConditionValue = mocker.create_autospec(grpc.UnaryUnaryMultiCallable)
323+
stub.ReadMeasurementValue = mocker.create_autospec(grpc.UnaryUnaryMultiCallable)
283324
return stub

0 commit comments

Comments
 (0)