text: """The tests for the climate component."""
  import asyncio
  
  from homeassistant.components.climate import SET_TEMPERATURE_SCHEMA
  from tests.common import async_mock_service
  
  
  @asyncio.coroutine
  def test_set_temp_schema_no_req(hass, caplog):
      """Test the set temperature schema with missing required data."""
      domain = 'climate'
      service = 'test_set_temperature'
      schema = SET_TEMPERATURE_SCHEMA
      calls = async_mock_service(hass, domain, service, schema)
  
      data = {'operation_mode': 'test', 'entity_id': ['climate.test_id']}
      yield from hass.services.async_call(domain, service, data)
      yield from hass.async_block_till_done()
  
      assert len(calls) == 0
      assert 'ERROR' in caplog.text
      assert 'Invalid service data' in caplog.text
  
  
  @asyncio.coroutine
  def test_set_temp_schema(hass, caplog):
      """Test the set temperature schema with ok required data."""
      domain = 'climate'
      service = 'test_set_temperature'
      schema = SET_TEMPERATURE_SCHEMA
      calls = async_mock_service(hass, domain, service, schema)
  
      data = {
          'temperature': 20.0, 'operation_mode': 'test',
          'entity_id': ['climate.test_id']}
      yield from hass.services.async_call(domain, service, data)
      yield from hass.async_block_till_done()
  
      assert len(calls) == 1
      assert calls[-1].data == data
  