text: """The tests for the Tasmota mixins."""
  import copy
  import json
  from unittest.mock import call
  
  from hatasmota.const import CONF_MAC
  from hatasmota.utils import config_get_state_online, get_topic_tele_will
  
  from homeassistant.components.tasmota.const import DEFAULT_PREFIX
  
  from .test_common import DEFAULT_CONFIG
  
  from tests.common import async_fire_mqtt_message
  
  
  async def test_availability_poll_state_once(
      hass, mqtt_client_mock, mqtt_mock, setup_tasmota
  ):
      """Test several entities send a single message to update state."""
      config = copy.deepcopy(DEFAULT_CONFIG)
      config["rl"][0] = 1
      config["rl"][1] = 1
      config["swc"][0] = 1
      config["swc"][1] = 1
      poll_payload_relay = ""
      poll_payload_switch = "10"
      poll_topic_relay = "tasmota_49A3BC/cmnd/STATE"
      poll_topic_switch = "tasmota_49A3BC/cmnd/STATUS"
  
      async_fire_mqtt_message(
          hass,
          f"{DEFAULT_PREFIX}/{config[CONF_MAC]}/config",
          json.dumps(config),
      )
      await hass.async_block_till_done()
      mqtt_mock.async_publish.reset_mock()
  
      # Device online, verify poll for state
      async_fire_mqtt_message(
          hass,
          get_topic_tele_will(config),
          config_get_state_online(config),
      )
      await hass.async_block_till_done()
      await hass.async_block_till_done()
      await hass.async_block_till_done()
      mqtt_mock.async_publish.assert_has_calls(
          [
              call(poll_topic_relay, poll_payload_relay, 0, False),
              call(poll_topic_switch, poll_payload_switch, 0, False),
          ],
          any_order=True,
      )
  