async def test_commands_without_supported_features(hass, mqtt_mock):
    'Test commands which are not supported by the vacuum.'
    config = deepcopy(DEFAULT_CONFIG)
    services = mqttvacuum.STRING_TO_SERVICE['status']
    config[mqttvacuum.CONF_SUPPORTED_FEATURES] = services_to_strings(services, SERVICE_TO_STRING)
    assert (await async_setup_component(hass, vacuum.DOMAIN, {vacuum.DOMAIN: config}))
    (await hass.services.async_call(DOMAIN, SERVICE_START, {'entity_id': ENTITY_MATCH_ALL}, blocking=True))
    mqtt_mock.async_publish.assert_not_called()
    mqtt_mock.async_publish.reset_mock()
    (await hass.services.async_call(DOMAIN, SERVICE_PAUSE, {'entity_id': ENTITY_MATCH_ALL}, blocking=True))
    mqtt_mock.async_publish.assert_not_called()
    mqtt_mock.async_publish.reset_mock()
    (await hass.services.async_call(DOMAIN, SERVICE_STOP, {'entity_id': ENTITY_MATCH_ALL}, blocking=True))
    mqtt_mock.async_publish.assert_not_called()
    mqtt_mock.async_publish.reset_mock()
    (await hass.services.async_call(DOMAIN, SERVICE_RETURN_TO_BASE, {'entity_id': ENTITY_MATCH_ALL}, blocking=True))
    mqtt_mock.async_publish.assert_not_called()
    mqtt_mock.async_publish.reset_mock()
    (await hass.services.async_call(DOMAIN, SERVICE_LOCATE, {'entity_id': ENTITY_MATCH_ALL}, blocking=True))
    mqtt_mock.async_publish.assert_not_called()
    mqtt_mock.async_publish.reset_mock()
    (await hass.services.async_call(DOMAIN, SERVICE_CLEAN_SPOT, {'entity_id': ENTITY_MATCH_ALL}, blocking=True))
    mqtt_mock.async_publish.assert_not_called()
    mqtt_mock.async_publish.reset_mock()
    (await common.async_set_fan_speed(hass, 'medium', 'vacuum.mqtttest'))
    mqtt_mock.async_publish.assert_not_called()
    mqtt_mock.async_publish.reset_mock()
    (await common.async_send_command(hass, '44 FE 93', {'key': 'value'}, entity_id='vacuum.mqtttest'))
    mqtt_mock.async_publish.assert_not_called()
Test commands which are not supported by the vacuum.
async def test_commands_without_supported_features(hass, mqtt_mock):
    
    config = deepcopy(DEFAULT_CONFIG)
    services = mqttvacuum.STRING_TO_SERVICE['status']
    config[mqttvacuum.CONF_SUPPORTED_FEATURES] = services_to_strings(services, SERVICE_TO_STRING)
    assert (await async_setup_component(hass, vacuum.DOMAIN, {vacuum.DOMAIN: config}))
    (await hass.services.async_call(DOMAIN, SERVICE_START, {'entity_id': ENTITY_MATCH_ALL}, blocking=True))
    mqtt_mock.async_publish.assert_not_called()
    mqtt_mock.async_publish.reset_mock()
    (await hass.services.async_call(DOMAIN, SERVICE_PAUSE, {'entity_id': ENTITY_MATCH_ALL}, blocking=True))
    mqtt_mock.async_publish.assert_not_called()
    mqtt_mock.async_publish.reset_mock()
    (await hass.services.async_call(DOMAIN, SERVICE_STOP, {'entity_id': ENTITY_MATCH_ALL}, blocking=True))
    mqtt_mock.async_publish.assert_not_called()
    mqtt_mock.async_publish.reset_mock()
    (await hass.services.async_call(DOMAIN, SERVICE_RETURN_TO_BASE, {'entity_id': ENTITY_MATCH_ALL}, blocking=True))
    mqtt_mock.async_publish.assert_not_called()
    mqtt_mock.async_publish.reset_mock()
    (await hass.services.async_call(DOMAIN, SERVICE_LOCATE, {'entity_id': ENTITY_MATCH_ALL}, blocking=True))
    mqtt_mock.async_publish.assert_not_called()
    mqtt_mock.async_publish.reset_mock()
    (await hass.services.async_call(DOMAIN, SERVICE_CLEAN_SPOT, {'entity_id': ENTITY_MATCH_ALL}, blocking=True))
    mqtt_mock.async_publish.assert_not_called()
    mqtt_mock.async_publish.reset_mock()
    (await common.async_set_fan_speed(hass, 'medium', 'vacuum.mqtttest'))
    mqtt_mock.async_publish.assert_not_called()
    mqtt_mock.async_publish.reset_mock()
    (await common.async_send_command(hass, '44 FE 93', {'key': 'value'}, entity_id='vacuum.mqtttest'))
    mqtt_mock.async_publish.assert_not_called()