Fix Tuya v2 login issue (#56973)
* fix login issue * fix:login error * update COUNTRY_CODE_CHINA line location * added one blank line * feat:added line #L88 was not covered by tests * ci build errors Co-authored-by: erchuan <jie.zheng@tuya.com>
This commit is contained in:
parent
2d374d65b6
commit
7446e388ed
2 changed files with 66 additions and 18 deletions
|
@ -24,7 +24,8 @@ MOCK_ACCESS_ID = "myAccessId"
|
|||
MOCK_ACCESS_SECRET = "myAccessSecret"
|
||||
MOCK_USERNAME = "myUsername"
|
||||
MOCK_PASSWORD = "myPassword"
|
||||
MOCK_COUNTRY_CODE = "1"
|
||||
MOCK_COUNTRY_CODE_BASE = "86"
|
||||
MOCK_COUNTRY_CODE_OTHER = "1"
|
||||
MOCK_APP_TYPE = "smartlife"
|
||||
MOCK_ENDPOINT = "https://openapi-ueaz.tuyaus.com"
|
||||
|
||||
|
@ -35,15 +36,6 @@ TUYA_INDUSTRY_PROJECT_DATA = {
|
|||
CONF_PROJECT_TYPE: MOCK_INDUSTRY_PROJECT_TYPE,
|
||||
}
|
||||
|
||||
TUYA_INPUT_SMART_HOME_DATA = {
|
||||
CONF_ACCESS_ID: MOCK_ACCESS_ID,
|
||||
CONF_ACCESS_SECRET: MOCK_ACCESS_SECRET,
|
||||
CONF_USERNAME: MOCK_USERNAME,
|
||||
CONF_PASSWORD: MOCK_PASSWORD,
|
||||
CONF_COUNTRY_CODE: MOCK_COUNTRY_CODE,
|
||||
CONF_APP_TYPE: MOCK_APP_TYPE,
|
||||
}
|
||||
|
||||
TUYA_INPUT_INDUSTRY_DATA = {
|
||||
CONF_ENDPOINT: MOCK_ENDPOINT,
|
||||
CONF_ACCESS_ID: MOCK_ACCESS_ID,
|
||||
|
@ -52,15 +44,23 @@ TUYA_INPUT_INDUSTRY_DATA = {
|
|||
CONF_PASSWORD: MOCK_PASSWORD,
|
||||
}
|
||||
|
||||
TUYA_IMPORT_SMART_HOME_DATA = {
|
||||
TUYA_IMPORT_SMART_HOME_DATA_BASE = {
|
||||
CONF_ACCESS_ID: MOCK_ACCESS_ID,
|
||||
CONF_ACCESS_SECRET: MOCK_ACCESS_SECRET,
|
||||
CONF_USERNAME: MOCK_USERNAME,
|
||||
CONF_PASSWORD: MOCK_PASSWORD,
|
||||
CONF_COUNTRY_CODE: MOCK_COUNTRY_CODE,
|
||||
CONF_COUNTRY_CODE: MOCK_COUNTRY_CODE_BASE,
|
||||
CONF_APP_TYPE: MOCK_APP_TYPE,
|
||||
}
|
||||
|
||||
TUYA_IMPORT_SMART_HOME_DATA_OTHER = {
|
||||
CONF_ACCESS_ID: MOCK_ACCESS_ID,
|
||||
CONF_ACCESS_SECRET: MOCK_ACCESS_SECRET,
|
||||
CONF_USERNAME: MOCK_USERNAME,
|
||||
CONF_PASSWORD: MOCK_PASSWORD,
|
||||
CONF_COUNTRY_CODE: MOCK_COUNTRY_CODE_OTHER,
|
||||
CONF_APP_TYPE: MOCK_APP_TYPE,
|
||||
}
|
||||
|
||||
TUYA_IMPORT_INDUSTRY_DATA = {
|
||||
CONF_PROJECT_TYPE: MOCK_SMART_HOME_PROJECT_TYPE,
|
||||
|
@ -118,8 +118,8 @@ async def test_industry_user(hass, tuya):
|
|||
assert not result["result"].unique_id
|
||||
|
||||
|
||||
async def test_smart_home_user(hass, tuya):
|
||||
"""Test smart home user config."""
|
||||
async def test_smart_home_user_base(hass, tuya):
|
||||
"""Test smart home user config base."""
|
||||
result = await hass.config_entries.flow.async_init(
|
||||
DOMAIN, context={"source": config_entries.SOURCE_USER}
|
||||
)
|
||||
|
@ -137,7 +137,7 @@ async def test_smart_home_user(hass, tuya):
|
|||
|
||||
tuya().login = MagicMock(return_value={"success": False, "errorCode": 1024})
|
||||
result = await hass.config_entries.flow.async_configure(
|
||||
result["flow_id"], user_input=TUYA_IMPORT_SMART_HOME_DATA
|
||||
result["flow_id"], user_input=TUYA_IMPORT_SMART_HOME_DATA_BASE
|
||||
)
|
||||
await hass.async_block_till_done()
|
||||
|
||||
|
@ -145,7 +145,7 @@ async def test_smart_home_user(hass, tuya):
|
|||
|
||||
tuya().login = MagicMock(return_value={"success": True, "errorCode": 1024})
|
||||
result = await hass.config_entries.flow.async_configure(
|
||||
result["flow_id"], user_input=TUYA_IMPORT_SMART_HOME_DATA
|
||||
result["flow_id"], user_input=TUYA_IMPORT_SMART_HOME_DATA_BASE
|
||||
)
|
||||
await hass.async_block_till_done()
|
||||
|
||||
|
@ -155,7 +155,49 @@ async def test_smart_home_user(hass, tuya):
|
|||
assert result["data"][CONF_ACCESS_SECRET] == MOCK_ACCESS_SECRET
|
||||
assert result["data"][CONF_USERNAME] == MOCK_USERNAME
|
||||
assert result["data"][CONF_PASSWORD] == MOCK_PASSWORD
|
||||
assert result["data"][CONF_COUNTRY_CODE] == MOCK_COUNTRY_CODE
|
||||
assert result["data"][CONF_COUNTRY_CODE] == MOCK_COUNTRY_CODE_BASE
|
||||
assert result["data"][CONF_APP_TYPE] == MOCK_APP_TYPE
|
||||
assert not result["result"].unique_id
|
||||
|
||||
|
||||
async def test_smart_home_user_other(hass, tuya):
|
||||
"""Test smart home user config other."""
|
||||
result = await hass.config_entries.flow.async_init(
|
||||
DOMAIN, context={"source": config_entries.SOURCE_USER}
|
||||
)
|
||||
|
||||
assert result["type"] == data_entry_flow.RESULT_TYPE_FORM
|
||||
assert result["step_id"] == "user"
|
||||
|
||||
result = await hass.config_entries.flow.async_configure(
|
||||
result["flow_id"], user_input=TUYA_SMART_HOME_PROJECT_DATA
|
||||
)
|
||||
await hass.async_block_till_done()
|
||||
|
||||
assert result["type"] == data_entry_flow.RESULT_TYPE_FORM
|
||||
assert result["step_id"] == "login"
|
||||
|
||||
tuya().login = MagicMock(return_value={"success": False, "errorCode": 1024})
|
||||
result = await hass.config_entries.flow.async_configure(
|
||||
result["flow_id"], user_input=TUYA_IMPORT_SMART_HOME_DATA_OTHER
|
||||
)
|
||||
await hass.async_block_till_done()
|
||||
|
||||
assert result["errors"]["base"] == RESULT_AUTH_FAILED
|
||||
|
||||
tuya().login = MagicMock(return_value={"success": True, "errorCode": 1024})
|
||||
result = await hass.config_entries.flow.async_configure(
|
||||
result["flow_id"], user_input=TUYA_IMPORT_SMART_HOME_DATA_OTHER
|
||||
)
|
||||
await hass.async_block_till_done()
|
||||
|
||||
assert result["type"] == data_entry_flow.RESULT_TYPE_CREATE_ENTRY
|
||||
assert result["title"] == MOCK_USERNAME
|
||||
assert result["data"][CONF_ACCESS_ID] == MOCK_ACCESS_ID
|
||||
assert result["data"][CONF_ACCESS_SECRET] == MOCK_ACCESS_SECRET
|
||||
assert result["data"][CONF_USERNAME] == MOCK_USERNAME
|
||||
assert result["data"][CONF_PASSWORD] == MOCK_PASSWORD
|
||||
assert result["data"][CONF_COUNTRY_CODE] == MOCK_COUNTRY_CODE_OTHER
|
||||
assert result["data"][CONF_APP_TYPE] == MOCK_APP_TYPE
|
||||
assert not result["result"].unique_id
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue