Skip to content

Commit b182d5c

Browse files
authored
Add additional unit tests for Growatt Server integration (home-assistant#154644)
1 parent 175365b commit b182d5c

File tree

8 files changed

+11967
-7
lines changed

8 files changed

+11967
-7
lines changed
Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,12 @@
1-
"""Tests for the growatt_server component."""
1+
"""Tests for the Growatt Server integration."""
2+
3+
from homeassistant.core import HomeAssistant
4+
5+
from tests.common import MockConfigEntry
6+
7+
8+
async def setup_integration(hass: HomeAssistant, config_entry: MockConfigEntry) -> None:
9+
"""Set up the Growatt Server integration for testing."""
10+
config_entry.add_to_hass(hass)
11+
await hass.config_entries.async_setup(config_entry.entry_id)
12+
await hass.async_block_till_done()

tests/components/growatt_server/conftest.py

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,19 @@ def mock_growatt_v1_api():
7070
}
7171

7272
# Called by MIN device coordinator during refresh
73-
# Empty dict is sufficient for switch tests (sensor tests would need real energy data)
74-
mock_v1_api.min_energy.return_value = {}
73+
# Provide realistic energy data for sensor tests
74+
mock_v1_api.min_energy.return_value = {
75+
"eChargeToday": 5.2,
76+
"eChargeTotal": 125.8,
77+
"eDischargeToday": 8.1,
78+
"eDischargeTotal": 245.6,
79+
"eSelfToday": 12.5,
80+
"eSelfTotal": 320.4,
81+
"eBatChargeToday": 6.3,
82+
"eBatChargeTotal": 150.2,
83+
"eBatDischargeToday": 7.8,
84+
"eBatDischargeTotal": 180.5,
85+
}
7586

7687
# Called by total coordinator during refresh
7788
mock_v1_api.plant_energy_overview.return_value = {
Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
# serializer version: 1
2+
# name: test_classic_api_setup
3+
DeviceRegistryEntrySnapshot({
4+
'area_id': None,
5+
'config_entries': <ANY>,
6+
'config_entries_subentries': <ANY>,
7+
'configuration_url': None,
8+
'connections': set({
9+
}),
10+
'disabled_by': None,
11+
'entry_type': None,
12+
'hw_version': None,
13+
'id': <ANY>,
14+
'identifiers': set({
15+
tuple(
16+
'growatt_server',
17+
'TLX123456',
18+
),
19+
}),
20+
'labels': set({
21+
}),
22+
'manufacturer': 'Growatt',
23+
'model': None,
24+
'model_id': None,
25+
'name': 'TLX123456',
26+
'name_by_user': None,
27+
'primary_config_entry': <ANY>,
28+
'serial_number': None,
29+
'sw_version': None,
30+
'via_device_id': None,
31+
})
32+
# ---
33+
# name: test_device_info
34+
DeviceRegistryEntrySnapshot({
35+
'area_id': None,
36+
'config_entries': <ANY>,
37+
'config_entries_subentries': <ANY>,
38+
'configuration_url': None,
39+
'connections': set({
40+
}),
41+
'disabled_by': None,
42+
'entry_type': None,
43+
'hw_version': None,
44+
'id': <ANY>,
45+
'identifiers': set({
46+
tuple(
47+
'growatt_server',
48+
'MIN123456',
49+
),
50+
}),
51+
'labels': set({
52+
}),
53+
'manufacturer': 'Growatt',
54+
'model': None,
55+
'model_id': None,
56+
'name': 'MIN123456',
57+
'name_by_user': None,
58+
'primary_config_entry': <ANY>,
59+
'serial_number': None,
60+
'sw_version': None,
61+
'via_device_id': None,
62+
})
63+
# ---
64+
# name: test_multiple_devices_discovered[device_min123456]
65+
DeviceRegistryEntrySnapshot({
66+
'area_id': None,
67+
'config_entries': <ANY>,
68+
'config_entries_subentries': <ANY>,
69+
'configuration_url': None,
70+
'connections': set({
71+
}),
72+
'disabled_by': None,
73+
'entry_type': None,
74+
'hw_version': None,
75+
'id': <ANY>,
76+
'identifiers': set({
77+
tuple(
78+
'growatt_server',
79+
'MIN123456',
80+
),
81+
}),
82+
'labels': set({
83+
}),
84+
'manufacturer': 'Growatt',
85+
'model': None,
86+
'model_id': None,
87+
'name': 'MIN123456',
88+
'name_by_user': None,
89+
'primary_config_entry': <ANY>,
90+
'serial_number': None,
91+
'sw_version': None,
92+
'via_device_id': None,
93+
})
94+
# ---
95+
# name: test_multiple_devices_discovered[device_min789012]
96+
DeviceRegistryEntrySnapshot({
97+
'area_id': None,
98+
'config_entries': <ANY>,
99+
'config_entries_subentries': <ANY>,
100+
'configuration_url': None,
101+
'connections': set({
102+
}),
103+
'disabled_by': None,
104+
'entry_type': None,
105+
'hw_version': None,
106+
'id': <ANY>,
107+
'identifiers': set({
108+
tuple(
109+
'growatt_server',
110+
'MIN789012',
111+
),
112+
}),
113+
'labels': set({
114+
}),
115+
'manufacturer': 'Growatt',
116+
'model': None,
117+
'model_id': None,
118+
'name': 'MIN789012',
119+
'name_by_user': None,
120+
'primary_config_entry': <ANY>,
121+
'serial_number': None,
122+
'sw_version': None,
123+
'via_device_id': None,
124+
})
125+
# ---

0 commit comments

Comments
 (0)