8000 Fix tests · home-assistant/core@07e78be · GitHub
[go: up one dir, main page]

Skip to content

Commit 07e78be

Browse files
committed
Fix tests
1 parent 2df6ad7 commit 07e78be

File tree

1 file changed

+188
-61
lines changed

1 file changed

+188
-61
lines changed

tests/components/buienradar/test_config_flow.py

Lines changed: 188 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,15 @@
33
from homeassistant.components.buienradar.const import (
44
CONF_CAMERA,
55
CONF_COUNTRY,
6+
CONF_DIMENSION,
67
CONF_SENSOR,
78
CONF_WEATHER,
89
DOMAIN,
910
)
10-
from homeassistant.const import CONF_LATITUDE, CONF_LONGITUDE, CONF_NAME
11+
from homeassistant.const import CONF_DOMAIN, CONF_LATITUDE, CONF_LONGITUDE, CONF_NAME
12+
13+
from tests.async_mock import patch
14+
from tests.common import MockConfigEntry
1115

1216
TEST_LATITUDE = 51.65
1317
TEST_LONGITUDE = 5.7
@@ -19,12 +23,8 @@
1923
TEST_TIMEFRAME = 60
2024

2125

22-
async def test_config_flow_setup_all(hass):
23-
"""
24-
Test flow manually initialized by user.
25-
26-
Setup all platforms.
27-
"""
26+
async def test_config_flow_setup_camera(hass):
27+
"""Test setup of camera."""
2828
result = await hass.config_entries.flow.async_init(
2929
DOMAIN, context={"source": config_entries.SOURCE_USER}
3030
)
@@ -35,36 +35,35 @@ async def test_config_flow_setup_all(hass):
3535

3636
result = await hass.config_entries.flow.async_configure(
3737
result["flow_id"],
38-
{
39-
CONF_NAME: TEST_NAME,
40-
CONF_LATITUDE: TEST_LATITUDE,
41-
CONF_LONGITUDE: TEST_LONGITUDE,
42-
CONF_CAMERA: True,
43-
CONF_COUNTRY: "NL",
44-
},
38+
{CONF_DOMAIN: "Camera"},
4539
)
4640

41+
assert result["type"] == "form"
42+
assert result["step_id"] == "camera"
43+
assert result["errors"] == {}
44+
45+
with patch(
46+
"homeassistant.components.buienradar.async_setup_entry", return_value=True
47+
):
48+
result = await hass.config_entries.flow.async_configure(
49+
result["flow_id"],
50+
{CONF_NAME: TEST_NAME, CONF_DIMENSION: 512, CONF_COUNTRY: "NL"},
51+
)
52+
4753
assert result["type"] == "create_entry"
4854
assert result["title"] == TEST_NAME
4955
assert result["data"] == {
5056
CONF_NAME: TEST_NAME,
51-
CONF_LATITUDE: TEST_LATITUDE,
52-
CONF_LONGITUDE: TEST_LONGITUDE,
53-
CONF_WEATHER: True,
54-
CONF_CAMERA: True,
55-
CONF_SENSOR: True,
57+
CONF_DIMENSION: 512,
5658
CONF_COUNTRY: "NL",
59+
CONF_WEATHER: False,
60+
CONF_CAMERA: True,
61+
CONF_SENSOR: False,
5762
}
5863

59-
await hass.async_block_till_done()
6064

61-
62-
async def test_config_flow_setup_without_camera(hass):
63-
"""
64-
Test flow manually initialized by user.
65-
66-
Setup camera platform
67-
"""
65+
async def test_config_flow_setup_weather(hass):
66+
"""Test setup of weather."""
6867
result = await hass.config_entries.flow.async_init(
6968
DOMAIN, context={"source": config_entries.SOURCE_USER}
7069
)
@@ -75,15 +74,25 @@ async def test_config_flow_setup_without_camera(hass):
7574

7675
result = await hass.config_entries.flow.async_configure(
7776
result["flow_id"],
78-
{
79-
CONF_NAME: TEST_NAME,
80-
CONF_LATITUDE: TEST_LATITUDE,
81-
CONF_LONGITUDE: TEST_LONGITUDE,
82-
CONF_CAMERA: False,
83-
CONF_COUNTRY: "NL",
84-
},
77+
{CONF_DOMAIN: "Weather"},
8578
)
8679

80+
assert result["type"] == "form"
81+
assert result["step_id"] == "weather"
82+
assert result["errors"] == {}
83+
84+
with patch(
85+
"homeassistant.components.buienradar.async_setup_entry", return_value=True
86+
):
87+
result = await hass.config_entries.flow.async_configure(
88+
result["flow_id"],
89+
{
90+
CONF_NAME: TEST_NAME,
91+
CONF_LATITUDE: TEST_LATITUDE,
92+
CONF_LONGITUDE: TEST_LONGITUDE,
93+
},
94+
)
95+
8796
assert result["type"] == "create_entry"
8897
assert result["title"] == TEST_NAME
8998
assert result["data"] == {
@@ -93,18 +102,68 @@ async def test_config_flow_setup_without_camera(hass):
93102
CONF_WEATHER: True,
94103
CONF_CAMERA: False,
95104
CONF_SENSOR: True,
96-
CONF_COUNTRY: "NL",
97105
}
98106

99-
await hass.async_block_till_done()
100107

108+
async def test_config_flow_already_configured_camera(hass):
109+
"""Test already configured."""
110+
entry = MockConfigEntry(
111+
domain=DOMAIN,
112+
data={
113+
CONF_NAME: TEST_NAME,
114+
CONF_DIMENSION: 512,
115+
CONF_COUNTRY: "NL",
116+
CONF_WEATHER: False,
117+
CONF_CAMERA: True,
118+
CONF_SENSOR: False,
119+
},
120+
unique_id=DOMAIN,
121+
)
122+
entry.add_to_hass(hass)
101123

102-
async def test_config_flow_already_configured(hass):
103-
"""
104-
Test flow manually initialized by user.
124+
result = await hass.config_entries.flow.async_init(
125+
DOMAIN, context={"source": config_entries.SOURCE_USER}
126+
)
127+
128+
assert result["type"] == "form"
129+
assert result["step_id"] == "user"
130+
assert result["errors"] == {}
131+
132+
result = await hass.config_entries.flow.async_configure(
133+
result["flow_id"],
134+
{CONF_DOMAIN: "Camera"},
135+
)
136+
137+
assert result["type"] == "form"
138+
assert result["step_id"] == "camera"
139+
assert result["errors"] == {}
140+
141+
result = await hass.config_entries.flow.async_configure(
142+
result["flow_id"],
143+
{CONF_NAME: TEST_NAME, CONF_DIMENSION: 512, CONF_COUNTRY: "NL"},
144+
)
145+
146+
assert result["type"] == "form"
147+
assert result["step_id"] == "camera"
148+
assert result["errors"] == {"base": "already_configured"}
149+
150+
151+
async def test_config_flow_already_configured_weather(hass):
152+
"""Test already configured."""
153+
entry = MockConfigEntry(
154+
domain=DOMAIN,
155+
data={
156+
CONF_NAME: TEST_NAME,
157+
CONF_LATITUDE: TEST_LATITUDE,
158+
CONF_LONGITUDE: TEST_LONGITUDE,
159+
CONF_WEATHER: True,
160+
CONF_CAMERA: False,
161+
CONF_SENSOR: True,
162+
},
163+
unique_id=DOMAIN,
164+
)
165+
entry.add_to_hass(hass)
105166

106-
Setup all platforms.
107-
"""
108167
result = await hass.config_entries.flow.async_init(
109168
DOMAIN, context={"source": config_entries.SOURCE_USER}
110169
)
@@ -113,50 +172,118 @@ async def test_config_flow_already_configured(hass):
113172
assert result["step_id"] == "user"
114173
assert result["errors"] == {}
115174

175+
result = await hass.config_entries.flow.async_configure(
176+
result["flow_id"],
177+
{CONF_DOMAIN: "Weather"},
178+
)
179+
180+
assert result["type"] == "form"
181+
assert result["step_id"] == "weather"
182+
assert result["errors"] == {}
183+
116184
result = await hass.config_entries.flow.async_configure(
117185
result["flow_id"],
118186
{
119187
CONF_NAME: TEST_NAME,
120188
CONF_LATITUDE: TEST_LATITUDE,
121189
CONF_LONGITUDE: TEST_LONGITUDE,
190+
},
191+
)
192+
193+
assert result["type"] == "form"
194+
assert result["step_id"] == "weather"
195+
assert result["errors"] == {"base": "already_configured"}
196+
197+
198+
async def test_import_camera(hass):
199+
"""Test import of camera."""
200+
201+
with patch(
202+
"homeassistant.components.buienradar.async_setup_entry", return_value=True
203+
):
204+
result = await hass.config_entries.flow.async_init(
205+
DOMAIN,
206+
context={"source": config_entries.SOURCE_IMPORT},
207+
data={
208+
CONF_NAME: TEST_NAME,
209+
CONF_DIMENSION: TEST_DIMENSION,
210+
CONF_COUNTRY: TEST_COUNTRY,
211+
CONF_CAMERA: True,
212+
CONF_SENSOR: False,
213+
CONF_WEATHER: False,
214+
},
215+
)
216+
217+
assert result["type"] == "create_entry"
218+
assert result["title"] == TEST_NAME
219+
assert result["data"] == {
220+
CONF_NAME: TEST_NAME,
221+
CONF_DIMENSION: 512,
222+
CONF_COUNTRY: "NL",
223+
CONF_WEATHER: False,
224+
CONF_CAMERA: True,
225+
CONF_SENSOR: False,
226+
}
227+
228+
result = await hass.config_entries.flow.async_init(
229+
DOMAIN,
230+
context={"source": config_entries.SOURCE_IMPORT},
231+
data={
232+
CONF_NAME: TEST_NAME,
233+
CONF_DIMENSION: TEST_DIMENSION,
234+
CONF_COUNTRY: TEST_COUNTRY,
122235
CONF_CAMERA: True,
123-
CONF_COUNTRY: "NL",
236+
CONF_SENSOR: False,
237+
CONF_WEATHER: False,
124238
},
125239
)
126240

241+
assert result["type"] == "abort"
242+
assert result["reason"] == "already_configured"
243+
244+
245+
async def test_import_weather(hass):
246+
"""Test import of camera."""
247+
248+
with patch(
249+
"homeassistant.components.buienradar.async_setup_entry", return_value=True
250+
):
251+
result = await hass.config_entries.flow.async_init(
252+
DOMAIN,
253+
context={"source": config_entries.SOURCE_IMPORT},
254+
data={
255+
CONF_NAME: TEST_NAME,
256+
CONF_LATITUDE: TEST_LATITUDE,
257+
CONF_LONGITUDE: TEST_LONGITUDE,
258+
CONF_CAMERA: False,
259+
CONF_SENSOR: True,
260+
CONF_WEATHER: True,
261+
},
262+
)
263+
127264
assert result["type"] == "create_entry"
128265
assert result["title"] == TEST_NAME
129266
assert result["data"] == {
130267
CONF_NAME: TEST_NAME,
131268
CONF_LATITUDE: TEST_LATITUDE,
132269
CONF_LONGITUDE: TEST_LONGITUDE,
133270
CONF_WEATHER: True,
134-
CONF_CAMERA: True,
271+
CONF_CAMERA: False,
135272
CONF_SENSOR: True,
136-
CONF_COUNTRY: "NL",
137273
}
138274

139-
await hass.async_block_till_done()
140-
141275
result = await hass.config_entries.flow.async_init(
142-
DOMAIN, context={"source": config_entries.SOURCE_USER}
143-
)
144-
145-
assert result["type"] == "form"
146-
assert result["step_id"] == "user"
147-
assert result["errors"] == {}
148-
149-
result = await hass.config_entries.flow.async_configure(
150-
result["flow_id"],
151-
{
276+
DOMAIN,
277+
context={"source": config_entries.SOURCE_IMPORT},
278+
data={
152279
CONF_NAME: TEST_NAME,
153280
CONF_LATITUDE: TEST_LATITUDE,
154281
CONF_LONGITUDE: TEST_LONGITUDE,
155-
CONF_CAMERA: True,
156-
CONF_COUNTRY: "NL",
282+
CONF_CAMERA: False,
283+
CONF_SENSOR: True,
284+
CONF_WEATHER: True,
157285
},
158286
)
159287

160-
assert result["type"] == "form"
161-
assert result["step_id"] == "user"
162-
assert result["errors"] == {CONF_NAME: "name_exists"}
288+
assert result["type"] == "abort"
289+
assert result["reason"] == "already_configured"

0 commit comments

Comments
 (0)
0