|
1 |
| -from openleadr import OpenADRClient, OpenADRServer, enable_default_logging |
| 1 | +from openleadr import OpenADRClient, OpenADRServer, enable_default_logging, objects, utils |
2 | 2 | import pytest
|
3 | 3 | import asyncio
|
4 | 4 | import datetime
|
@@ -197,3 +197,47 @@ async def test_request_event():
|
197 | 197 | message_type, message_payload = await client.request_event()
|
198 | 198 | assert message_type == 'oadrResponse'
|
199 | 199 | await server.stop()
|
| 200 | + |
| 201 | + |
| 202 | +@pytest.mark.asyncio |
| 203 | +async def test_raw_event(): |
| 204 | + now = datetime.datetime.now(datetime.timezone.utc) |
| 205 | + server = OpenADRServer(vtn_id='myvtn') |
| 206 | + server.add_handler('on_create_party_registration', on_create_party_registration) |
| 207 | + event = objects.Event(event_descriptor=objects.EventDescriptor(event_id='event001', |
| 208 | + modification_number=0, |
| 209 | + event_status='far', |
| 210 | + market_context='http://marketcontext01'), |
| 211 | + event_signals=[objects.EventSignal(signal_id='signal001', |
| 212 | + signal_type='level', |
| 213 | + signal_name='simple', |
| 214 | + intervals=[objects.Interval(dtstart=now, |
| 215 | + duration=datetime.timedelta(minutes=10), |
| 216 | + signal_payload=1)]), |
| 217 | + objects.EventSignal(signal_id='signal002', |
| 218 | + signal_type='price', |
| 219 | + signal_name='ELECTRICITY_PRICE', |
| 220 | + intervals=[objects.Interval(dtstart=now, |
| 221 | + duration=datetime.timedelta(minutes=10), |
| 222 | + signal_payload=1)])], |
| 223 | + targets=[objects.Target(ven_id='ven123')]) |
| 224 | + loop = asyncio.get_event_loop() |
| 225 | + event_callback_future = loop.create_future() |
| 226 | + server.add_raw_event(ven_id='ven123', event=event, callback=partial(event_callback, future=event_callback_future)) |
| 227 | + |
| 228 | + on_event_future = loop.create_future() |
| 229 | + client = OpenADRClient(ven_name='myven', |
| 230 | + vtn_url='http://localhost:8080/OpenADR2/Simple/2.0b') |
| 231 | + client.add_handler('on_event', partial(on_event_opt_in, future=on_event_future)) |
| 232 | + |
| 233 | + await server.run_async() |
| 234 | + await client.run() |
| 235 | + event = await on_event_future |
| 236 | + assert len(event['event_signals']) == 2 |
| 237 | + |
| 238 | + result = await event_callback_future |
| 239 | + assert result == 'optIn' |
| 240 | + |
| 241 | + await client.stop() |
| 242 | + await server.stop() |
| 243 | + |
0 commit comments