'Test supported media commands with children and attrs.'

def test_supported_features_children_and_cmds(self):

    config = self.config_children_and_attr
    universal.validate_config(config)
    config['commands']['turn_on'] = 'test'
    config['commands']['turn_off'] = 'test'
    config['commands']['volume_up'] = 'test'
    config['commands']['volume_down'] = 'test'
    config['commands']['volume_mute'] = 'test'
    config['commands']['volume_set'] = 'test'
    config['commands']['select_source'] = 'test'
    config['commands']['shuffle_set'] = 'test'
    ump = universal.UniversalMediaPlayer(self.hass, **config)
    ump.entity_id = media_player.ENTITY_ID_FORMAT.format(config['name'])
    run_coroutine_threadsafe(ump.async_update(), self.hass.loop).result()
    self.mock_mp_1._state = STATE_PLAYING
    self.mock_mp_1.schedule_update_ha_state()
    self.hass.block_till_done()
    run_coroutine_threadsafe(ump.async_update(), self.hass.loop).result()
    check_flags = (((((universal.SUPPORT_TURN_ON | universal.SUPPORT_TURN_OFF) | universal.SUPPORT_VOLUME_STEP) | universal.SUPPORT_VOLUME_MUTE) | universal.SUPPORT_SELECT_SOURCE) | universal.SUPPORT_SHUFFLE_SET)
    self.assertEqual(check_flags, ump.supported_features)
