text: """The test for the fido sensor platform."""
  import logging
  from unittest.mock import MagicMock, patch
  
  from pyfido.client import PyFidoError
  
  from homeassistant.bootstrap import async_setup_component
  from homeassistant.components.fido import sensor as fido
  
  from tests.common import assert_setup_component
  
  CONTRACT = "123456789"
  
  
  class FidoClientMock:
      """Fake Fido client."""
  
      def __init__(self, username, password, timeout=None, httpsession=None):
          """Fake Fido client init."""
          pass
  
      def get_phone_numbers(self):
          """Return Phone numbers."""
          return ["1112223344"]
  
      def get_data(self):
          """Return fake fido data."""
          return {"balance": 160.12, "1112223344": {"data_remaining": 100.33}}
  
      async def fetch_data(self):
          """Return fake fetching data."""
          pass
  
  
  class FidoClientMockError(FidoClientMock):
      """Fake Fido client error."""
  
      async def fetch_data(self):
          """Return fake fetching data."""
          raise PyFidoError("Fake Error")
  
  
  async def test_fido_sensor(loop, hass):
      """Test the Fido number sensor."""
      with patch("homeassistant.components.fido.sensor.FidoClient", new=FidoClientMock):
          config = {
              "sensor": {
                  "platform": "fido",
                  "name": "fido",
                  "username": "myusername",
                  "password": "password",
                  "monitored_variables": ["balance", "data_remaining"],
              }
          }
          with assert_setup_component(1):
              await async_setup_component(hass, "sensor", config)
              await hass.async_block_till_done()
          state = hass.states.get("sensor.fido_1112223344_balance")
          assert state.state == "160.12"
          assert state.attributes.get("number") == "1112223344"
          state = hass.states.get("sensor.fido_1112223344_data_remaining")
          assert state.state == "100.33"
  
  
  async def test_error(hass, caplog):
      """Test the Fido sensor errors."""
      caplog.set_level(logging.ERROR)
  
      config = {}
      fake_async_add_entities = MagicMock()
      with patch("homeassistant.components.fido.sensor.FidoClient", FidoClientMockError):
          await fido.async_setup_platform(hass, config, fake_async_add_entities)
      assert fake_async_add_entities.called is False
  