Beispiel #1
0
    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 self.assertRaises(vol.Invalid):
            honeywell.PLATFORM_SCHEMA(None)

        with self.assertRaises(vol.Invalid):
            honeywell.PLATFORM_SCHEMA({})

        with self.assertRaises(vol.Invalid):
            honeywell.PLATFORM_SCHEMA(bad_pass_config)

        with self.assertRaises(vol.Invalid):
            honeywell.PLATFORM_SCHEMA(bad_region_config)

        hass = mock.MagicMock()
        add_devices = 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_devices)
        self.assertTrue(result)
        self.assertEqual(mock_sc.call_count, 1)
        self.assertEqual(mock_sc.call_args, mock.call('user', 'pass'))
        mock_ht.assert_has_calls([
            mock.call(mock_sc.return_value, devices_1[0]),
            mock.call(mock_sc.return_value, devices_2[0]),
            mock.call(mock_sc.return_value, devices_2[1]),
        ])
    def test_eu_setup_bad_temp(self, mock_round, mock_evo):
        """Test the EU setup with invalid temperature."""
        config = {
            CONF_USERNAME: '******',
            CONF_PASSWORD: '******',
            honeywell.CONF_AWAY_TEMPERATURE: 'ponies',
            honeywell.CONF_REGION: 'eu',
        }

        with self.assertRaises(vol.Invalid):
            honeywell.PLATFORM_SCHEMA(config)
    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'),
        ])