Skip to content

Commit f1203d4

Browse files
committed
Update mock api to mock the v0.15.1 of the api
Signed-off-by: Sahas Subramanian <[email protected]>
1 parent f3e3d41 commit f1203d4

File tree

2 files changed

+56
-41
lines changed

2 files changed

+56
-41
lines changed

tests/microgrid/mock_api.py

Lines changed: 50 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -17,30 +17,37 @@
1717
from typing import Iterable, Iterator, List, Optional, Tuple
1818

1919
import grpc
20+
from frequenz.api.common.components_pb2 import (
21+
COMPONENT_CATEGORY_BATTERY,
22+
COMPONENT_CATEGORY_EV_CHARGER,
23+
COMPONENT_CATEGORY_INVERTER,
24+
COMPONENT_CATEGORY_METER,
25+
ComponentCategory,
26+
InverterType,
27+
)
28+
from frequenz.api.common.metrics.electrical_pb2 import AC
29+
from frequenz.api.common.metrics_pb2 import Metric, MetricAggregation
2030
from frequenz.api.microgrid.battery_pb2 import Battery
2131
from frequenz.api.microgrid.battery_pb2 import Data as BatteryData
22-
from frequenz.api.microgrid.common_pb2 import AC, Metric, MetricAggregation
23-
from frequenz.api.microgrid.ev_charger_pb2 import EVCharger
32+
from frequenz.api.microgrid.ev_charger_pb2 import EvCharger
2433
from frequenz.api.microgrid.inverter_pb2 import Inverter
25-
from frequenz.api.microgrid.inverter_pb2 import Type as InverterType
34+
from frequenz.api.microgrid.inverter_pb2 import Metadata as InverterMetadata
2635
from frequenz.api.microgrid.meter_pb2 import Data as MeterData
2736
from frequenz.api.microgrid.meter_pb2 import Meter
2837
from frequenz.api.microgrid.microgrid_pb2 import (
29-
COMPONENT_CATEGORY_BATTERY,
30-
COMPONENT_CATEGORY_EV_CHARGER,
31-
COMPONENT_CATEGORY_INVERTER,
32-
COMPONENT_CATEGORY_METER,
3338
Component,
34-
ComponentCategory,
3539
ComponentData,
3640
ComponentFilter,
3741
ComponentIdParam,
3842
ComponentList,
3943
Connection,
4044
ConnectionFilter,
4145
ConnectionList,
46+
MicrogridMetadata,
4247
PowerLevelParam,
4348
SetBoundsParam,
49+
SetPowerActiveParam,
50+
SetPowerReactiveParam,
4451
)
4552
from frequenz.api.microgrid.microgrid_pb2_grpc import (
4653
MicrogridServicer,
@@ -76,20 +83,21 @@ def __init__(
7683
if connections is not None:
7784
self.set_connections(connections)
7885

79-
self._latest_charge: Optional[PowerLevelParam] = None
80-
self._latest_discharge: Optional[PowerLevelParam] = None
86+
self._latest_power: Optional[SetPowerActiveParam] = None
8187

8288
def add_component(
8389
self,
8490
component_id: int,
8591
component_category: ComponentCategory.V,
86-
inverter_type: InverterType.V = InverterType.TYPE_UNSPECIFIED,
92+
inverter_type: InverterType.V = InverterType.INVERTER_TYPE_UNSPECIFIED,
8793
) -> None:
8894
"""Add a component to the mock service."""
8995
if component_category == ComponentCategory.COMPONENT_CATEGORY_INVERTER:
9096
self._components.append(
9197
Component(
92-
id=component_id, category=component_category, inverter=inverter_type
98+
id=component_id,
99+
category=component_category,
100+
inverter=InverterMetadata(type=inverter_type),
93101
)
94102
)
95103
else:
@@ -116,14 +124,9 @@ def set_connections(self, connections: List[Tuple[int, int]]) -> None:
116124
)
117125

118126
@property
119-
def latest_charge(self) -> Optional[PowerLevelParam]:
127+
def latest_power(self) -> SetPowerActiveParam | None:
120128
"""Get argumetns of the latest charge request."""
121-
return self._latest_charge
122-
123-
@property
124-
def latest_discharge(self) -> Optional[PowerLevelParam]:
125-
"""Get arguments of the latest discharge request."""
126-
return self._latest_discharge
129+
return self._latest_power
127130

128131
def get_bounds(self) -> List[SetBoundsParam]:
129132
"""Return the list of received bounds."""
@@ -159,7 +162,7 @@ def ListConnections(
159162
connections = filter(lambda c: c.end in request.ends, connections)
160163
return ConnectionList(connections=connections)
161164

162-
def GetComponentData(
165+
def StreamComponentData(
163166
self, request: ComponentIdParam, context: grpc.ServicerContext
164167
) -> Iterator[ComponentData]:
165168
"""Return an iterator for mock ComponentData."""
@@ -194,40 +197,52 @@ def next_msg() -> ComponentData:
194197
if component.category == COMPONENT_CATEGORY_INVERTER:
195198
return ComponentData(id=request.id, inverter=Inverter())
196199
if component.category == COMPONENT_CATEGORY_EV_CHARGER:
197-
return ComponentData(id=request.id, ev_charger=EVCharger())
200+
return ComponentData(id=request.id, ev_charger=EvCharger())
198201
return ComponentData()
199202

200203
num_messages = 3
201204
for _ in range(num_messages):
202205
msg = next_msg()
203206
yield msg
204207

205-
def SetBounds(
206-
self, request_iterator: Iterator[SetBoundsParam], context: grpc.ServicerContext
208+
def SetPowerActive(
209+
self, request: SetPowerActiveParam, context: grpc.ServicerContext
207210
) -> Empty:
208-
"""/nitrogen.Nitrogen/SetBounds method stub."""
209-
for bound in request_iterator:
210-
self._bounds.append(bound)
211+
"""/nitrogen.Nitrogen/SetPowerActive method stub."""
212+
self._latest_power = request
211213
return Empty()
212214

213-
def Charge(self, request: PowerLevelParam, context: grpc.ServicerContext) -> Empty:
214-
"""/nitrogen.Nitrogen/Charge method stub."""
215-
self._latest_charge = request
216-
return Empty()
217-
218-
def Discharge(
219-
self, request: PowerLevelParam, context: grpc.ServicerContext
215+
def SetPowerReactive(
216+
self, request: SetPowerReactiveParam, context: grpc.ServicerContext
220217
) -> Empty:
221-
"""/nitrogen.Nitrogen/Discharge method stub."""
222-
self._latest_discharge = request
218+
"""/nitrogen.Nitrogen/SetPowerReactive method stub."""
223219
return Empty()
224220

221+
def GetMicrogridMetadata(
222+
self, request: Empty, context: grpc.ServicerContext
223+
) -> MicrogridMetadata:
224+
"""/nitrogen.Nitrogen/GetMicrogridMetadata method stub."""
225+
return MicrogridMetadata()
226+
225227
def CanStreamData(
226228
self, request: ComponentIdParam, context: grpc.ServicerContext
227229
) -> BoolValue:
228230
"""/nitrogen.Nitrogen/CanStreamData method stub."""
229231
return BoolValue(value=True)
230232

233+
def AddExclusionBounds(
234+
self, request: SetBoundsParam, context: grpc.ServicerContext
235+
) -> Timestamp:
236+
"""/nitrogen.Nitrogen/AddExclusionBounds method stub."""
237+
return Timestamp()
238+
239+
def AddInclusionBounds(
240+
self, request: SetBoundsParam, context: grpc.ServicerContext
241+
) -> Timestamp:
242+
"""/nitrogen.Nitrogen/AddExclusionBounds method stub."""
243+
self._bounds.append(request)
244+
return Timestamp()
245+
231246
def HotStandby(
232247
self, request: ComponentIdParam, context: grpc.ServicerContext
233248
) -> Empty:

tests/microgrid/test_client.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -498,9 +498,9 @@ async def test_charge(self) -> None:
498498

499499
await microgrid.set_power(component_id=83, power_w=12)
500500

501-
assert servicer.latest_charge is not None
502-
assert servicer.latest_charge.component_id == 83
503-
assert servicer.latest_charge.power_w == 12
501+
assert servicer.latest_power is not None
502+
assert servicer.latest_power.component_id == 83
503+
assert servicer.latest_power.power == 12
504504

505505
finally:
506506
assert await server.graceful_shutdown()
@@ -521,9 +521,9 @@ async def test_discharge(self) -> None:
521521

522522
await microgrid.set_power(component_id=73, power_w=-15)
523523

524-
assert servicer.latest_discharge is not None
525-
assert servicer.latest_discharge.component_id == 73
526-
assert servicer.latest_discharge.power_w == 15
524+
assert servicer.latest_power is not None
525+
assert servicer.latest_power.component_id == 73
526+
assert servicer.latest_power.power == -15
527527
finally:
528528
assert await server.graceful_shutdown()
529529

0 commit comments

Comments
 (0)