async def test_invalid_credential(mock_get, mock_post, hass): """Testing invalid credential handling.""" config = { DOMAIN: xiaomi.PLATFORM_SCHEMA({ CONF_PLATFORM: xiaomi.DOMAIN, CONF_HOST: "192.168.0.1", CONF_USERNAME: INVALID_USERNAME, CONF_PASSWORD: "******", }) } assert get_scanner(hass, config) is None
async def test_valid_credential(mock_get, mock_post, hass): """Testing valid refresh.""" config = { DOMAIN: xiaomi.PLATFORM_SCHEMA({ CONF_PLATFORM: xiaomi.DOMAIN, CONF_HOST: "192.168.0.1", CONF_USERNAME: "******", CONF_PASSWORD: "******", }) } scanner = get_scanner(hass, config) assert scanner is not None assert 2 == len(scanner.scan_devices()) assert "Device1" == scanner.get_device_name("23:83:BF:F6:38:A0") assert "Device2" == scanner.get_device_name("1D:98:EC:5E:D5:A6")
async def test_config(xiaomi_mock, hass): """Testing minimal configuration.""" config = { DOMAIN: xiaomi.PLATFORM_SCHEMA({ CONF_PLATFORM: xiaomi.DOMAIN, CONF_HOST: "192.168.0.1", CONF_PASSWORD: "******", }) } xiaomi.get_scanner(hass, config) assert xiaomi_mock.call_count == 1 assert xiaomi_mock.call_args == mock.call(config[DOMAIN]) call_arg = xiaomi_mock.call_args[0][0] assert call_arg["username"] == "admin" assert call_arg["password"] == "passwordTest" assert call_arg["host"] == "192.168.0.1" assert call_arg["platform"] == "device_tracker"
async def test_config(xiaomi_mock, hass): """Testing minimal configuration.""" config = { DOMAIN: xiaomi.PLATFORM_SCHEMA({ CONF_PLATFORM: xiaomi.DOMAIN, CONF_HOST: '192.168.0.1', CONF_PASSWORD: '******' }) } xiaomi.get_scanner(hass, config) assert xiaomi_mock.call_count == 1 assert xiaomi_mock.call_args == mock.call(config[DOMAIN]) call_arg = xiaomi_mock.call_args[0][0] assert call_arg['username'] == 'admin' assert call_arg['password'] == 'passwordTest' assert call_arg['host'] == '192.168.0.1' assert call_arg['platform'] == 'device_tracker'
async def test_token_timed_out(mock_get, mock_post, hass): """Testing refresh with a timed out token. New token is requested and list is downloaded a second time. """ config = { DOMAIN: xiaomi.PLATFORM_SCHEMA({ CONF_PLATFORM: xiaomi.DOMAIN, CONF_HOST: "192.168.0.1", CONF_USERNAME: TOKEN_TIMEOUT_USERNAME, CONF_PASSWORD: "******", }) } scanner = get_scanner(hass, config) assert scanner is not None assert 2 == len(scanner.scan_devices()) assert "Device1" == scanner.get_device_name("23:83:BF:F6:38:A0") assert "Device2" == scanner.get_device_name("1D:98:EC:5E:D5:A6")