def _test_us_filtered_devices(self, mock_ht, mock_sc, loc=None, dev=None): """Test for US filtered thermostats.""" config = { CONF_USERNAME: "******", CONF_PASSWORD: "******", honeywell.CONF_REGION: "us", "location": loc, "thermostat": dev, } locations = { 1: mock.MagicMock( locationid=mock.sentinel.loc1, devices_by_id={ 11: mock.MagicMock(deviceid=mock.sentinel.loc1dev1), 12: mock.MagicMock(deviceid=mock.sentinel.loc1dev2), }, ), 2: mock.MagicMock( locationid=mock.sentinel.loc2, devices_by_id={21: mock.MagicMock(deviceid=mock.sentinel.loc2dev1)}, ), 3: mock.MagicMock( locationid=mock.sentinel.loc3, devices_by_id={31: mock.MagicMock(deviceid=mock.sentinel.loc3dev1)}, ), } mock_sc.return_value = mock.MagicMock(locations_by_id=locations) hass = mock.MagicMock() add_entities = mock.MagicMock() assert honeywell.setup_platform(hass, config, add_entities) is True return mock_ht.call_args_list, mock_sc
def test_eu_setup_full_config(self, mock_round, mock_evo): """Test the EU setup with complete configuration.""" config = { CONF_USERNAME: "******", CONF_PASSWORD: "******", honeywell.CONF_REGION: "eu", } mock_evo.return_value.temperatures.return_value = [{ "id": "foo" }, { "id": "bar" }] hass = mock.MagicMock() add_entities = mock.MagicMock() assert honeywell.setup_platform(hass, config, add_entities) assert mock_evo.call_count == 1 assert mock_evo.call_args == mock.call("user", "pass") assert mock_evo.return_value.temperatures.call_count == 1 assert mock_evo.return_value.temperatures.call_args == mock.call( force_refresh=True) mock_round.assert_has_calls([ mock.call(mock_evo.return_value, "foo", True, 20.0), mock.call(mock_evo.return_value, "bar", False, 20.0), ]) assert 2 == add_entities.call_count
def _test_us_filtered_devices(self, mock_ht, mock_sc, loc=None, dev=None): """Test for US filtered thermostats.""" config = { CONF_USERNAME: '******', CONF_PASSWORD: '******', honeywell.CONF_REGION: 'us', 'location': loc, 'thermostat': dev, } locations = { 1: mock.MagicMock(locationid=mock.sentinel.loc1, devices_by_id={ 11: mock.MagicMock( deviceid=mock.sentinel.loc1dev1), 12: mock.MagicMock( deviceid=mock.sentinel.loc1dev2), }), 2: mock.MagicMock(locationid=mock.sentinel.loc2, devices_by_id={ 21: mock.MagicMock( deviceid=mock.sentinel.loc2dev1), }), 3: mock.MagicMock(locationid=mock.sentinel.loc3, devices_by_id={ 31: mock.MagicMock( deviceid=mock.sentinel.loc3dev1), }), } mock_sc.return_value = mock.MagicMock(locations_by_id=locations) hass = mock.MagicMock() add_entities = mock.MagicMock() assert honeywell.setup_platform(hass, config, add_entities) is True return mock_ht.call_args_list, mock_sc
def test_eu_setup_full_config(self, mock_round, mock_evo): """Test the EU setup with complete configuration.""" config = { CONF_USERNAME: '******', CONF_PASSWORD: '******', honeywell.CONF_AWAY_TEMPERATURE: 20.0, honeywell.CONF_REGION: 'eu', } mock_evo.return_value.temperatures.return_value = [{ 'id': 'foo' }, { 'id': 'bar' }] hass = mock.MagicMock() add_entities = mock.MagicMock() assert honeywell.setup_platform(hass, config, add_entities) assert mock_evo.call_count == 1 assert mock_evo.call_args == mock.call('user', 'pass') assert mock_evo.return_value.temperatures.call_count == 1 assert mock_evo.return_value.temperatures.call_args == \ mock.call(force_refresh=True) mock_round.assert_has_calls([ mock.call(mock_evo.return_value, 'foo', True, 20.0), mock.call(mock_evo.return_value, 'bar', False, 20.0), ]) assert 2 == add_entities.call_count
def test_setup_us_failures(self, mock_sc): """Test the US setup.""" hass = mock.MagicMock() add_entities = mock.MagicMock() config = { CONF_USERNAME: "******", CONF_PASSWORD: "******", honeywell.CONF_REGION: "us", } mock_sc.side_effect = somecomfort.AuthError result = honeywell.setup_platform(hass, config, add_entities) assert not result assert not add_entities.called mock_sc.side_effect = somecomfort.SomeComfortError result = honeywell.setup_platform(hass, config, add_entities) assert not result assert not add_entities.called
def test_setup_us_failures(self, mock_sc): """Test the US setup.""" hass = mock.MagicMock() add_entities = mock.MagicMock() config = { CONF_USERNAME: '******', CONF_PASSWORD: '******', honeywell.CONF_REGION: 'us', } mock_sc.side_effect = somecomfort.AuthError result = honeywell.setup_platform(hass, config, add_entities) assert not result assert not add_entities.called mock_sc.side_effect = somecomfort.SomeComfortError result = honeywell.setup_platform(hass, config, add_entities) assert not result assert not add_entities.called
def test_setup_us(self, mock_ht, mock_sc): """Test for the US setup.""" config = { CONF_USERNAME: '******', CONF_PASSWORD: '******', honeywell.CONF_REGION: 'us', } bad_pass_config = { CONF_USERNAME: '******', honeywell.CONF_REGION: 'us', } bad_region_config = { CONF_USERNAME: '******', CONF_PASSWORD: '******', honeywell.CONF_REGION: 'un', } with pytest.raises(vol.Invalid): honeywell.PLATFORM_SCHEMA(None) with pytest.raises(vol.Invalid): honeywell.PLATFORM_SCHEMA({}) with pytest.raises(vol.Invalid): honeywell.PLATFORM_SCHEMA(bad_pass_config) with pytest.raises(vol.Invalid): honeywell.PLATFORM_SCHEMA(bad_region_config) hass = mock.MagicMock() add_entities = mock.MagicMock() locations = [ mock.MagicMock(), mock.MagicMock(), ] devices_1 = [mock.MagicMock()] devices_2 = [mock.MagicMock(), mock.MagicMock] mock_sc.return_value.locations_by_id.values.return_value = \ locations locations[0].devices_by_id.values.return_value = devices_1 locations[1].devices_by_id.values.return_value = devices_2 result = honeywell.setup_platform(hass, config, add_entities) assert result assert mock_sc.call_count == 1 assert mock_sc.call_args == mock.call('user', 'pass') mock_ht.assert_has_calls([ mock.call(mock_sc.return_value, devices_1[0], 18, 28, 'user', 'pass'), mock.call(mock_sc.return_value, devices_2[0], 18, 28, 'user', 'pass'), mock.call(mock_sc.return_value, devices_2[1], 18, 28, 'user', 'pass'), ])
def test_eu_setup_error(self, mock_round, mock_evo): """Test the EU setup with errors.""" config = { CONF_USERNAME: "******", CONF_PASSWORD: "******", honeywell.CONF_REGION: "eu", } mock_evo.return_value.temperatures.side_effect = ( requests.exceptions.RequestException) add_entities = mock.MagicMock() hass = mock.MagicMock() assert not honeywell.setup_platform(hass, config, add_entities)
def test_eu_setup_error(self, mock_round, mock_evo): """Test the EU setup with errors.""" config = { CONF_USERNAME: '******', CONF_PASSWORD: '******', honeywell.CONF_AWAY_TEMPERATURE: 20, honeywell.CONF_REGION: 'eu', } mock_evo.return_value.temperatures.side_effect = socket.error add_entities = mock.MagicMock() hass = mock.MagicMock() assert not honeywell.setup_platform(hass, config, add_entities)
def test_eu_setup_error(self, mock_round, mock_evo): """Test the EU setup with errors.""" config = { CONF_USERNAME: '******', CONF_PASSWORD: '******', honeywell.CONF_AWAY_TEMPERATURE: 20, honeywell.CONF_REGION: 'eu', } mock_evo.return_value.temperatures.side_effect = socket.error add_entities = mock.MagicMock() hass = mock.MagicMock() assert not honeywell.setup_platform(hass, config, add_entities)
def test_eu_setup_partial_config(self, mock_round, mock_evo): """Test the EU setup with partial configuration.""" config = { CONF_USERNAME: "******", CONF_PASSWORD: "******", honeywell.CONF_REGION: "eu", } mock_evo.return_value.temperatures.return_value = [{"id": "foo"}, {"id": "bar"}] hass = mock.MagicMock() add_entities = mock.MagicMock() assert honeywell.setup_platform(hass, config, add_entities) mock_round.assert_has_calls( [ mock.call(mock_evo.return_value, "foo", True, 16), mock.call(mock_evo.return_value, "bar", False, 16), ] )
def test_eu_setup_partial_config(self, mock_round, mock_evo): """Test the EU setup with partial configuration.""" config = { CONF_USERNAME: '******', CONF_PASSWORD: '******', honeywell.CONF_REGION: 'eu', } mock_evo.return_value.temperatures.return_value = [ {'id': 'foo'}, {'id': 'bar'}] config[honeywell.CONF_AWAY_TEMPERATURE] = \ honeywell.DEFAULT_AWAY_TEMPERATURE hass = mock.MagicMock() add_entities = mock.MagicMock() assert honeywell.setup_platform(hass, config, add_entities) mock_round.assert_has_calls([ mock.call(mock_evo.return_value, 'foo', True, 16), mock.call(mock_evo.return_value, 'bar', False, 16), ])
def test_eu_setup_partial_config(self, mock_round, mock_evo): """Test the EU setup with partial configuration.""" config = { CONF_USERNAME: '******', CONF_PASSWORD: '******', honeywell.CONF_REGION: 'eu', } mock_evo.return_value.temperatures.return_value = [{ 'id': 'foo' }, { 'id': 'bar' }] hass = mock.MagicMock() add_entities = mock.MagicMock() assert honeywell.setup_platform(hass, config, add_entities) mock_round.assert_has_calls([ mock.call(mock_evo.return_value, 'foo', True, 16), mock.call(mock_evo.return_value, 'bar', False, 16), ])
def test_eu_setup_full_config(self, mock_round, mock_evo): """Test the EU setup with complete configuration.""" config = { CONF_USERNAME: '******', CONF_PASSWORD: '******', honeywell.CONF_AWAY_TEMPERATURE: 20.0, honeywell.CONF_REGION: 'eu', } mock_evo.return_value.temperatures.return_value = [ {'id': 'foo'}, {'id': 'bar'}] hass = mock.MagicMock() add_entities = mock.MagicMock() assert honeywell.setup_platform(hass, config, add_entities) assert mock_evo.call_count == 1 assert mock_evo.call_args == mock.call('user', 'pass') assert mock_evo.return_value.temperatures.call_count == 1 assert mock_evo.return_value.temperatures.call_args == \ mock.call(force_refresh=True) mock_round.assert_has_calls([ mock.call(mock_evo.return_value, 'foo', True, 20.0), mock.call(mock_evo.return_value, 'bar', False, 20.0), ]) assert 2 == add_entities.call_count
def test_setup_us(self, mock_ht, mock_sc): """Test for the US setup.""" config = { CONF_USERNAME: '******', CONF_PASSWORD: '******', honeywell.CONF_COOL_AWAY_TEMPERATURE: 18, honeywell.CONF_HEAT_AWAY_TEMPERATURE: 28, honeywell.CONF_REGION: 'us', } bad_pass_config = { CONF_USERNAME: '******', honeywell.CONF_COOL_AWAY_TEMPERATURE: 18, honeywell.CONF_HEAT_AWAY_TEMPERATURE: 28, honeywell.CONF_REGION: 'us', } bad_region_config = { CONF_USERNAME: '******', CONF_PASSWORD: '******', honeywell.CONF_COOL_AWAY_TEMPERATURE: 18, honeywell.CONF_HEAT_AWAY_TEMPERATURE: 28, honeywell.CONF_REGION: 'un', } with pytest.raises(vol.Invalid): honeywell.PLATFORM_SCHEMA(None) with pytest.raises(vol.Invalid): honeywell.PLATFORM_SCHEMA({}) with pytest.raises(vol.Invalid): honeywell.PLATFORM_SCHEMA(bad_pass_config) with pytest.raises(vol.Invalid): honeywell.PLATFORM_SCHEMA(bad_region_config) hass = mock.MagicMock() add_entities = mock.MagicMock() locations = [ mock.MagicMock(), mock.MagicMock(), ] devices_1 = [mock.MagicMock()] devices_2 = [mock.MagicMock(), mock.MagicMock] mock_sc.return_value.locations_by_id.values.return_value = \ locations locations[0].devices_by_id.values.return_value = devices_1 locations[1].devices_by_id.values.return_value = devices_2 result = honeywell.setup_platform(hass, config, add_entities) assert result assert mock_sc.call_count == 1 assert mock_sc.call_args == mock.call('user', 'pass') mock_ht.assert_has_calls([ mock.call(mock_sc.return_value, devices_1[0], 18, 28, 'user', 'pass'), mock.call(mock_sc.return_value, devices_2[0], 18, 28, 'user', 'pass'), mock.call(mock_sc.return_value, devices_2[1], 18, 28, 'user', 'pass'), ])