Skip to content

Commit 0a843ea

Browse files
committed
Send test data from secondary components
This won't be necessary as soon as the coalesce AST node is able to subscribe to secondary streams only if primary streams are not available. But for now, coalesce nodes need all their input streams to have data. Signed-off-by: Sahas Subramanian <[email protected]>
1 parent a69ba9e commit 0a843ea

File tree

6 files changed

+43
-8
lines changed

6 files changed

+43
-8
lines changed

tests/microgrid/test_grid.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@ async def test_grid_power_2(mocker: MockerFixture) -> None:
125125
for count in range(10):
126126
await mockgrid.mock_resampler.send_meter_power([20.0 + count, 12.0, -13.0])
127127
await mockgrid.mock_resampler.send_bat_inverter_power([0.0, -5.0])
128+
await mockgrid.mock_resampler.send_pv_inverter_power([0.0])
128129
meter_sum = 0.0
129130
for recv in component_receivers:
130131
val = await recv.receive()
@@ -220,6 +221,7 @@ async def test_grid_reactive_power_2(mocker: MockerFixture) -> None:
220221
await mockgrid.mock_resampler.send_meter_reactive_power(
221222
[20.0 + count, 12.0, -13.0]
222223
)
224+
await mockgrid.mock_resampler.send_pv_inverter_reactive_power([-13.0])
223225
await mockgrid.mock_resampler.send_bat_inverter_reactive_power([0.0, -5.0])
224226
meter_sum = 0.0
225227
for recv in component_receivers:
@@ -326,9 +328,13 @@ async def test_grid_production_consumption_power_consumer_meter(
326328
grid_recv = grid.power.new_receiver()
327329

328330
await mockgrid.mock_resampler.send_meter_power([1.0, 2.0, 3.0, 4.0])
331+
await mockgrid.mock_resampler.send_bat_inverter_power([2.0, 3.0])
332+
await mockgrid.mock_resampler.send_pv_inverter_power([4.0])
329333
assert (await grid_recv.receive()).value == Power.from_watts(10.0)
330334

331335
await mockgrid.mock_resampler.send_meter_power([1.0, 2.0, -3.0, -4.0])
336+
await mockgrid.mock_resampler.send_bat_inverter_power([2.0, -3.0])
337+
await mockgrid.mock_resampler.send_pv_inverter_power([-4.0])
332338
assert (await grid_recv.receive()).value == Power.from_watts(-4.0)
333339

334340

@@ -348,9 +354,13 @@ async def test_grid_production_consumption_power_no_grid_meter(
348354
grid_recv = grid.power.new_receiver()
349355

350356
await mockgrid.mock_resampler.send_meter_power([2.5, 3.5, 4.0])
357+
await mockgrid.mock_resampler.send_bat_inverter_power([2.5, 3.5])
358+
await mockgrid.mock_resampler.send_pv_inverter_power([4.0])
351359
assert (await grid_recv.receive()).value == Power.from_watts(10.0)
352360

353361
await mockgrid.mock_resampler.send_meter_power([3.0, -3.0, -4.0])
362+
await mockgrid.mock_resampler.send_bat_inverter_power([3.0, -3.0])
363+
await mockgrid.mock_resampler.send_pv_inverter_power([-4.0])
354364
assert (await grid_recv.receive()).value == Power.from_watts(-4.0)
355365

356366

tests/timeseries/_ev_charger_pool/test_ev_charger_pool.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,10 @@ async def test_ev_power( # pylint: disable=too-many-locals
2626
ev_pool = microgrid.new_ev_charger_pool(priority=5)
2727
power_receiver = ev_pool.power.new_receiver()
2828

29+
await mockgrid.mock_resampler.send_meter_power([None])
2930
await mockgrid.mock_resampler.send_evc_power([2.0, 4.0, 10.0])
3031
assert (await power_receiver.receive()).value == Power.from_watts(16.0)
3132

33+
await mockgrid.mock_resampler.send_meter_power([None])
3234
await mockgrid.mock_resampler.send_evc_power([2.0, 4.0, -10.0])
3335
assert (await power_receiver.receive()).value == Power.from_watts(-4.0)

tests/timeseries/mock_resampler.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,9 @@ def metric_senders(
7575
self._pv_inverter_power_senders = metric_senders(
7676
pv_inverter_ids, Metric.AC_ACTIVE_POWER
7777
)
78+
self._pv_inverter_reactive_power_senders = metric_senders(
79+
pv_inverter_ids, Metric.AC_REACTIVE_POWER
80+
)
7881
self._ev_power_senders = metric_senders(evc_ids, Metric.AC_ACTIVE_POWER)
7982

8083
self._chp_power_senders = metric_senders(chp_ids, Metric.AC_ACTIVE_POWER)
@@ -287,6 +290,13 @@ async def send_pv_inverter_power(self, values: list[float | None]) -> None:
287290
sample = self.make_sample(value)
288291
await chan.send(sample)
289292

293+
async def send_pv_inverter_reactive_power(self, values: list[float | None]) -> None:
294+
"""Send the given values as resampler output for PV Inverter power."""
295+
assert len(values) == len(self._pv_inverter_reactive_power_senders)
296+
for chan, value in zip(self._pv_inverter_reactive_power_senders, values):
297+
sample = self.make_sample(value)
298+
await chan.send(sample)
299+
290300
async def send_meter_frequency(self, values: list[float | None]) -> None:
291301
"""Send the given values as resampler output for meter frequency."""
292302
assert len(values) == len(self._meter_frequency_senders)

tests/timeseries/test_consumer.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ async def test_consumer_power_grid_meter(self, mocker: MockerFixture) -> None:
2828
consumer_power_receiver = consumer.power.new_receiver()
2929

3030
await mockgrid.mock_resampler.send_meter_power([20.0, 2.0, 3.0, 4.0, 5.0])
31+
await mockgrid.mock_resampler.send_bat_inverter_power([2.0, 3.0])
32+
await mockgrid.mock_resampler.send_pv_inverter_power([4.0, 5.0])
3133
assert (await consumer_power_receiver.receive()).value == Power.from_watts(
3234
6.0
3335
)
@@ -45,6 +47,8 @@ async def test_consumer_power_no_grid_meter(self, mocker: MockerFixture) -> None
4547
consumer_power_receiver = consumer.power.new_receiver()
4648

4749
await mockgrid.mock_resampler.send_meter_power([20.0, 2.0, 3.0, 4.0, 5.0])
50+
await mockgrid.mock_resampler.send_bat_inverter_power([2.0, 3.0])
51+
await mockgrid.mock_resampler.send_pv_inverter_power([4.0, 5.0])
4852
assert (await consumer_power_receiver.receive()).value == Power.from_watts(
4953
20.0
5054
)
@@ -63,6 +67,9 @@ async def test_consumer_power_no_grid_meter_no_consumer_meter(
6367
consumer_power_receiver = consumer.power.new_receiver()
6468

6569
await mockgrid.mock_resampler.send_non_existing_component_value()
70+
await mockgrid.mock_resampler.send_meter_power([2.0, 3.0, 4.0, 5.0])
71+
await mockgrid.mock_resampler.send_bat_inverter_power([2.0, 3.0])
72+
await mockgrid.mock_resampler.send_pv_inverter_power([4.0, 5.0])
6673
assert (await consumer_power_receiver.receive()).value == Power.from_watts(
6774
0.0
6875
)

tests/timeseries/test_logical_meter.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,11 @@ async def test_chp_power(self, mocker: MockerFixture) -> None:
3333
chp_power_receiver = logical_meter.chp_power.new_receiver()
3434

3535
await mockgrid.mock_resampler.send_meter_power([2.0, 3.0, 4.0])
36+
await mockgrid.mock_resampler.send_chp_power([2.0])
3637
assert (await chp_power_receiver.receive()).value == Power.from_watts(2.0)
3738

3839
await mockgrid.mock_resampler.send_meter_power([-12.0, None, 10.2])
40+
await mockgrid.mock_resampler.send_chp_power([-12.0])
3941
assert (await chp_power_receiver.receive()).value == Power.from_watts(-12.0)
4042

4143
async def test_pv_power(self, mocker: MockerFixture) -> None:

tests/timeseries/test_producer.py

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,11 @@ async def test_producer_power(self, mocker: MockerFixture) -> None:
2727
stack.push_async_callback(producer.stop)
2828
producer_power_receiver = producer.power.new_receiver()
2929

30-
await mockgrid.mock_resampler.send_meter_power([2.0, 3.0, 4.0, 5.0])
30+
await mockgrid.mock_resampler.send_meter_power([-2.0, -3.0, -4.0, -5.0])
31+
await mockgrid.mock_resampler.send_pv_inverter_power([-2.0, -3.0])
32+
await mockgrid.mock_resampler.send_chp_power([-4.0, -5.0])
3133
assert (await producer_power_receiver.receive()).value == Power.from_watts(
32-
14.0
34+
-14.0
3335
)
3436

3537
async def test_producer_power_no_chp(self, mocker: MockerFixture) -> None:
@@ -42,9 +44,10 @@ async def test_producer_power_no_chp(self, mocker: MockerFixture) -> None:
4244
stack.push_async_callback(producer.stop)
4345
producer_power_receiver = producer.power.new_receiver()
4446

45-
await mockgrid.mock_resampler.send_meter_power([2.0, 3.0])
47+
await mockgrid.mock_resampler.send_meter_power([-2.0, -3.0])
48+
await mockgrid.mock_resampler.send_pv_inverter_power([-2.0, -3.0])
4649
assert (await producer_power_receiver.receive()).value == Power.from_watts(
47-
5.0
50+
-5.0
4851
)
4952

5053
async def test_producer_power_no_pv_no_consumer_meter(
@@ -59,10 +62,10 @@ async def test_producer_power_no_pv_no_consumer_meter(
5962
stack.push_async_callback(producer.stop)
6063
producer_power_receiver = producer.power.new_receiver()
6164

62-
await mockgrid.mock_resampler.send_chp_power([2.0])
65+
await mockgrid.mock_resampler.send_chp_power([-2.0])
6366

6467
assert (await producer_power_receiver.receive()).value == Power.from_watts(
65-
2.0
68+
-2.0
6669
)
6770

6871
async def test_producer_power_no_pv(self, mocker: MockerFixture) -> None:
@@ -76,9 +79,10 @@ async def test_producer_power_no_pv(self, mocker: MockerFixture) -> None:
7679
stack.push_async_callback(producer.stop)
7780
producer_power_receiver = producer.power.new_receiver()
7881

79-
await mockgrid.mock_resampler.send_meter_power([20.0, 2.0])
82+
await mockgrid.mock_resampler.send_meter_power([20.0, -2.0])
83+
await mockgrid.mock_resampler.send_chp_power([-2.0])
8084
assert (await producer_power_receiver.receive()).value == Power.from_watts(
81-
2.0
85+
-2.0
8286
)
8387

8488
async def test_no_producer_power(self, mocker: MockerFixture) -> None:

0 commit comments

Comments
 (0)