2323from tests .common import MockConfigEntry
2424
2525
26+ @pytest .mark .parametrize (
27+ ("pre_normalized_code" , "normalized_code" ),
28+ [
29+ (
30+ "abc 123" ,
31+ "ABC123" ,
32+ ),
33+ (" 123456 " , "123456" ),
34+ ("123ABC" , "123ABC" ),
35+ ],
36+ ids = ["alphanumeric_lower_space" , "numeric_space" , "alphanumeric_no_space" ],
37+ )
2638async def test_user_setup (
2739 hass : HomeAssistant ,
40+ pre_normalized_code : str ,
41+ normalized_code : str ,
2842 mock_droplet_discovery : AsyncMock ,
2943 mock_droplet_connection : AsyncMock ,
3044 mock_droplet : AsyncMock ,
@@ -39,12 +53,12 @@ async def test_user_setup(
3953
4054 result = await hass .config_entries .flow .async_configure (
4155 result ["flow_id" ],
42- user_input = {CONF_CODE : MOCK_CODE , CONF_IP_ADDRESS : "192.168.1.2" },
56+ user_input = {CONF_CODE : pre_normalized_code , CONF_IP_ADDRESS : "192.168.1.2" },
4357 )
4458 assert result is not None
4559 assert result .get ("type" ) is FlowResultType .CREATE_ENTRY
4660 assert result .get ("data" ) == {
47- CONF_CODE : MOCK_CODE ,
61+ CONF_CODE : normalized_code ,
4862 CONF_DEVICE_ID : MOCK_DEVICE_ID ,
4963 CONF_IP_ADDRESS : MOCK_HOST ,
5064 CONF_PORT : MOCK_PORT ,
@@ -133,8 +147,22 @@ async def test_user_setup_already_configured(
133147 assert result .get ("reason" ) == "already_configured"
134148
135149
150+ @pytest .mark .parametrize (
151+ ("pre_normalized_code" , "normalized_code" ),
152+ [
153+ (
154+ "abc 123" ,
155+ "ABC123" ,
156+ ),
157+ (" 123456 " , "123456" ),
158+ ("123ABC" , "123ABC" ),
159+ ],
160+ ids = ["alphanumeric_lower_space" , "numeric_space" , "alphanumeric_no_space" ],
161+ )
136162async def test_zeroconf_setup (
137163 hass : HomeAssistant ,
164+ pre_normalized_code : str ,
165+ normalized_code : str ,
138166 mock_droplet_discovery : AsyncMock ,
139167 mock_droplet : AsyncMock ,
140168 mock_droplet_connection : AsyncMock ,
@@ -159,15 +187,15 @@ async def test_zeroconf_setup(
159187 assert result .get ("step_id" ) == "confirm"
160188
161189 result = await hass .config_entries .flow .async_configure (
162- result ["flow_id" ], user_input = {CONF_CODE : MOCK_CODE }
190+ result ["flow_id" ], user_input = {CONF_CODE : pre_normalized_code }
163191 )
164192 assert result is not None
165193 assert result .get ("type" ) is FlowResultType .CREATE_ENTRY
166194 assert result .get ("data" ) == {
167195 CONF_DEVICE_ID : MOCK_DEVICE_ID ,
168196 CONF_IP_ADDRESS : MOCK_HOST ,
169197 CONF_PORT : MOCK_PORT ,
170- CONF_CODE : MOCK_CODE ,
198+ CONF_CODE : normalized_code ,
171199 }
172200 assert result .get ("context" ) is not None
173201 assert result .get ("context" , {}).get ("unique_id" ) == MOCK_DEVICE_ID
0 commit comments