|
4 | 4 |
|
5 | 5 | import httpx |
6 | 6 | import pytest |
| 7 | +from openadr3.entities import coerce |
7 | 8 | from openadr3.entities.models import Program |
8 | 9 |
|
9 | 10 | from openadr3_client.ven import VenClient, extract_topics |
@@ -41,7 +42,9 @@ class TestVenClientRegistration: |
41 | 42 | @patch("openadr3_client.base.create_ven_client") |
42 | 43 | def test_register_existing_ven(self, mock_create): |
43 | 44 | mock_api = MagicMock() |
44 | | - mock_api.find_ven_by_name.return_value = {"id": "ven-123", "venName": "my-ven"} |
| 45 | + mock_api.find_ven_by_name.return_value = coerce( |
| 46 | + {"objectType": "VEN", "id": "ven-123", "venName": "my-ven"} |
| 47 | + ) |
45 | 48 | mock_create.return_value = mock_api |
46 | 49 |
|
47 | 50 | with VenClient(url="http://test", token="tok") as ven: |
@@ -80,11 +83,9 @@ class TestVenClientProgramLookup: |
80 | 83 | @patch("openadr3_client.base.create_ven_client") |
81 | 84 | def test_find_program_by_name(self, mock_create): |
82 | 85 | mock_api = MagicMock() |
83 | | - mock_api.find_program_by_name.return_value = { |
84 | | - "objectType": "PROGRAM", |
85 | | - "id": "prog-1", |
86 | | - "programName": "pricing", |
87 | | - } |
| 86 | + mock_api.find_program_by_name.return_value = coerce( |
| 87 | + {"objectType": "PROGRAM", "id": "prog-1", "programName": "pricing"} |
| 88 | + ) |
88 | 89 | mock_create.return_value = mock_api |
89 | 90 |
|
90 | 91 | with VenClient(url="http://test", token="tok") as ven: |
@@ -119,11 +120,9 @@ def test_resolve_program_id_cached(self, mock_create): |
119 | 120 | @patch("openadr3_client.base.create_ven_client") |
120 | 121 | def test_resolve_program_id_queries(self, mock_create): |
121 | 122 | mock_api = MagicMock() |
122 | | - mock_api.find_program_by_name.return_value = { |
123 | | - "objectType": "PROGRAM", |
124 | | - "id": "prog-2", |
125 | | - "programName": "dr-program", |
126 | | - } |
| 123 | + mock_api.find_program_by_name.return_value = coerce( |
| 124 | + {"objectType": "PROGRAM", "id": "prog-2", "programName": "dr-program"} |
| 125 | + ) |
127 | 126 | mock_create.return_value = mock_api |
128 | 127 |
|
129 | 128 | with VenClient(url="http://test", token="tok") as ven: |
@@ -202,7 +201,9 @@ class TestVenClientMqttTopics: |
202 | 201 | @patch("openadr3_client.base.create_ven_client") |
203 | 202 | def test_ven_scoped_defaults_to_registered(self, mock_create): |
204 | 203 | mock_api = MagicMock() |
205 | | - mock_api.find_ven_by_name.return_value = {"id": "ven-99", "venName": "v"} |
| 204 | + mock_api.find_ven_by_name.return_value = coerce( |
| 205 | + {"objectType": "VEN", "id": "ven-99", "venName": "v"} |
| 206 | + ) |
206 | 207 | mock_create.return_value = mock_api |
207 | 208 |
|
208 | 209 | with VenClient(url="http://test", token="tok") as ven: |
@@ -251,11 +252,9 @@ class TestVenClientSubscribe: |
251 | 252 | @patch("openadr3_client.base.create_ven_client") |
252 | 253 | def test_subscribe_mqtt(self, mock_create): |
253 | 254 | mock_api = MagicMock() |
254 | | - mock_api.find_program_by_name.return_value = { |
255 | | - "objectType": "PROGRAM", |
256 | | - "id": "prog-1", |
257 | | - "programName": "pricing", |
258 | | - } |
| 255 | + mock_api.find_program_by_name.return_value = coerce( |
| 256 | + {"objectType": "PROGRAM", "id": "prog-1", "programName": "pricing"} |
| 257 | + ) |
259 | 258 | mock_api.get_mqtt_topics_program_events.return_value = _make_response( |
260 | 259 | 200, {"topics": {"a": "openadr3/programs/prog-1/events"}} |
261 | 260 | ) |
|
0 commit comments