def test_ordered_dict_value_validator():  # pylint: disable=invalid-name
    """Test ordered_dict validator."""
    schema = vol.Schema(cv.ordered_dict(cv.string))

    with pytest.raises(vol.Invalid):
        schema({'hello': None})

    schema({'hello': 'world'})

    schema = vol.Schema(cv.ordered_dict(int))

    with pytest.raises(vol.Invalid):
        schema({'hello': 'world'})

    schema({'hello': 5})
def test_ordered_dict_value_validator():  # pylint: disable=invalid-name
    """Test ordered_dict validator."""
    schema = vol.Schema(cv.ordered_dict(cv.string))

    with pytest.raises(vol.Invalid):
        schema({'hello': None})

    schema({'hello': 'world'})

    schema = vol.Schema(cv.ordered_dict(int))

    with pytest.raises(vol.Invalid):
        schema({'hello': 'world'})

    schema({'hello': 5})
def test_ordered_dict_key_validator():
    """Test ordered_dict key validator."""
    schema = vol.Schema(cv.ordered_dict(cv.match_all, cv.string))

    with pytest.raises(vol.Invalid):
        schema({None: 1})

    schema({'hello': 'world'})

    schema = vol.Schema(cv.ordered_dict(cv.match_all, int))

    with pytest.raises(vol.Invalid):
        schema({'hello': 1})

    schema({1: 'works'})
def test_ordered_dict_key_validator():
    """Test ordered_dict key validator."""
    schema = vol.Schema(cv.ordered_dict(cv.match_all, cv.string))

    with pytest.raises(vol.Invalid):
        schema({None: 1})

    schema({'hello': 'world'})

    schema = vol.Schema(cv.ordered_dict(cv.match_all, int))

    with pytest.raises(vol.Invalid):
        schema({'hello': 1})

    schema({1: 'works'})
def test_ordered_dict_only_dict():
    """Test ordered_dict validator."""
    schema = vol.Schema(cv.ordered_dict(cv.match_all, cv.match_all))

    for value in (None, [], 100, 'hello'):
        with pytest.raises(vol.MultipleInvalid):
            schema(value)
def test_ordered_dict_only_dict():
    """Test ordered_dict validator."""
    schema = vol.Schema(cv.ordered_dict(cv.match_all, cv.match_all))

    for value in (None, [], 100, 'hello'):
        with pytest.raises(vol.MultipleInvalid):
            schema(value)
def test_ordered_dict_order():
    """Test ordered_dict validator."""
    schema = vol.Schema(cv.ordered_dict(int, cv.string))

    val = OrderedDict()
    val['first'] = 1
    val['second'] = 2

    validated = schema(val)

    assert isinstance(validated, OrderedDict)
    assert ['first', 'second'] == list(validated.keys())
def test_ordered_dict_order():
    """Test ordered_dict validator."""
    schema = vol.Schema(cv.ordered_dict(int, cv.string))

    val = OrderedDict()
    val['first'] = 1
    val['second'] = 2

    validated = schema(val)

    assert isinstance(validated, OrderedDict)
    assert ['first', 'second'] == list(validated.keys())
Esempio n. 9
0
})

SIGNAL_REFRESH_ENTITY_FORMAT = 'zwave_refresh_entity_{}'

CONFIG_SCHEMA = vol.Schema(
    {
        DOMAIN:
        vol.Schema({
            vol.Optional(CONF_AUTOHEAL, default=DEFAULT_CONF_AUTOHEAL):
            cv.boolean,
            vol.Optional(CONF_CONFIG_PATH):
            cv.string,
            vol.Optional(CONF_DEVICE_CONFIG, default={}):
            vol.Schema({cv.entity_id: DEVICE_CONFIG_SCHEMA_ENTRY}),
            vol.Optional(CONF_DEVICE_CONFIG_GLOB, default={}):
            cv.ordered_dict(DEVICE_CONFIG_SCHEMA_ENTRY, cv.string),
            vol.Optional(CONF_DEVICE_CONFIG_DOMAIN, default={}):
            vol.Schema({cv.string: DEVICE_CONFIG_SCHEMA_ENTRY}),
            vol.Optional(CONF_DEBUG, default=DEFAULT_DEBUG):
            cv.boolean,
            vol.Optional(CONF_POLLING_INTERVAL,
                         default=DEFAULT_POLLING_INTERVAL):
            cv.positive_int,
            vol.Optional(CONF_USB_STICK_PATH,
                         default=DEFAULT_CONF_USB_STICK_PATH):
            cv.string,
        }),
    },
    extra=vol.ALLOW_EXTRA)

Esempio n. 10
0
from homeassistant.components.media_player import (
    SUPPORT_PAUSE, SUPPORT_TURN_OFF, SUPPORT_TURN_ON, SUPPORT_NEXT_TRACK,
    SUPPORT_PREVIOUS_TRACK, SUPPORT_SELECT_SOURCE, PLATFORM_SCHEMA,
    SUPPORT_PLAY, MediaPlayerDevice)
from homeassistant.const import (
    CONF_HOST, CONF_NAME, STATE_OFF, STATE_PAUSED, STATE_ON, STATE_PLAYING)

REQUIREMENTS = ['pdunehd==1.3']

DEFAULT_NAME = 'DuneHD'

CONF_SOURCES = 'sources'

PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
    vol.Required(CONF_HOST): cv.string,
    vol.Optional(CONF_SOURCES): cv.ordered_dict(cv.string, cv.string),
    vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
})

DUNEHD_PLAYER_SUPPORT = \
    SUPPORT_PAUSE | SUPPORT_TURN_ON | SUPPORT_TURN_OFF | \
    SUPPORT_SELECT_SOURCE | SUPPORT_PREVIOUS_TRACK | SUPPORT_NEXT_TRACK | \
    SUPPORT_PLAY


# pylint: disable=unused-argument
def setup_platform(hass, config, add_devices, discovery_info=None):
    """Set up the media player demo platform."""
    sources = config.get(CONF_SOURCES, {})

    from pdunehd import DuneHDPlayer
Esempio n. 11
0
_LOGGER = logging.getLogger(__name__)


def _conf_preprocess(value):
    """Preprocess alternative configuration formats."""
    if not isinstance(value, dict):
        value = {CONF_ENTITIES: value}

    return value


CONFIG_SCHEMA = vol.Schema({
    DOMAIN: cv.ordered_dict(vol.All(_conf_preprocess, {
        vol.Optional(CONF_ENTITIES): vol.Any(cv.entity_ids, None),
        CONF_VIEW: cv.boolean,
        CONF_NAME: cv.string,
        CONF_ICON: cv.icon,
    }, cv.match_all))
}, extra=vol.ALLOW_EXTRA)

# List of ON/OFF state tuples for groupable states
_GROUP_TYPES = [(STATE_ON, STATE_OFF), (STATE_HOME, STATE_NOT_HOME),
                (STATE_OPEN, STATE_CLOSED), (STATE_LOCKED, STATE_UNLOCKED)]


def _get_group_on_off(state):
    """Determine the group on/off states based on a state."""
    for states in _GROUP_TYPES:
        if state in states:
            return states
Esempio n. 12
0
from homeassistant.components.media_player import (
    SUPPORT_PAUSE, SUPPORT_TURN_OFF, SUPPORT_TURN_ON, SUPPORT_NEXT_TRACK,
    SUPPORT_PREVIOUS_TRACK, SUPPORT_SELECT_SOURCE, PLATFORM_SCHEMA,
    MediaPlayerDevice)
from homeassistant.const import (
    CONF_HOST, CONF_NAME, STATE_OFF, STATE_PAUSED, STATE_ON, STATE_PLAYING)

REQUIREMENTS = ['pdunehd==1.3']

DEFAULT_NAME = 'DuneHD'

CONF_SOURCES = 'sources'

PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
    vol.Required(CONF_HOST): cv.string,
    vol.Optional(CONF_SOURCES): cv.ordered_dict(cv.string, cv.string),
    vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
})

DUNEHD_PLAYER_SUPPORT = \
    SUPPORT_PAUSE | SUPPORT_TURN_ON | SUPPORT_TURN_OFF | \
    SUPPORT_SELECT_SOURCE | SUPPORT_PREVIOUS_TRACK | SUPPORT_NEXT_TRACK


# pylint: disable=unused-argument
def setup_platform(hass, config, add_devices, discovery_info=None):
    """Set up the media player demo platform."""
    sources = config.get(CONF_SOURCES, {})

    from pdunehd import DuneHDPlayer
    add_devices([DuneHDPlayerEntity(
Esempio n. 13
0
GROUP_SCHEMA = vol.Schema({
    vol.Optional(CONF_ENTITIES):
    vol.Any(cv.entity_ids, None),
    CONF_VIEW:
    cv.boolean,
    CONF_NAME:
    cv.string,
    CONF_ICON:
    cv.icon,
    CONF_CONTROL:
    cv.string,
})

CONFIG_SCHEMA = vol.Schema(
    {DOMAIN: cv.ordered_dict(vol.All(_conf_preprocess, GROUP_SCHEMA))},
    extra=vol.ALLOW_EXTRA)

# List of ON/OFF state tuples for groupable states
_GROUP_TYPES = [(STATE_ON, STATE_OFF), (STATE_HOME, STATE_NOT_HOME),
                (STATE_OPEN, STATE_CLOSED), (STATE_LOCKED, STATE_UNLOCKED)]


def _get_group_on_off(state):
    """Determine the group on/off states based on a state."""
    for states in _GROUP_TYPES:
        if state in states:
            return states

    return None, None
Esempio n. 14
0
    vol.Optional(CONF_REFRESH_VALUE, default=DEFAULT_CONF_REFRESH_VALUE):
        cv.boolean,
    vol.Optional(CONF_REFRESH_DELAY, default=DEFAULT_CONF_REFRESH_DELAY):
        cv.positive_int
})

SIGNAL_REFRESH_ENTITY_FORMAT = 'zwave_refresh_entity_{}'

CONFIG_SCHEMA = vol.Schema({
    DOMAIN: vol.Schema({
        vol.Optional(CONF_AUTOHEAL, default=DEFAULT_CONF_AUTOHEAL): cv.boolean,
        vol.Optional(CONF_CONFIG_PATH): cv.string,
        vol.Optional(CONF_DEVICE_CONFIG, default={}):
            vol.Schema({cv.entity_id: DEVICE_CONFIG_SCHEMA_ENTRY}),
        vol.Optional(CONF_DEVICE_CONFIG_GLOB, default={}):
            cv.ordered_dict(DEVICE_CONFIG_SCHEMA_ENTRY, cv.string),
        vol.Optional(CONF_DEVICE_CONFIG_DOMAIN, default={}):
            vol.Schema({cv.string: DEVICE_CONFIG_SCHEMA_ENTRY}),
        vol.Optional(CONF_DEBUG, default=DEFAULT_DEBUG): cv.boolean,
        vol.Optional(CONF_POLLING_INTERVAL, default=DEFAULT_POLLING_INTERVAL):
            cv.positive_int,
        vol.Optional(CONF_USB_STICK_PATH, default=DEFAULT_CONF_USB_STICK_PATH):
            cv.string,
    }),
}, extra=vol.ALLOW_EXTRA)


def _obj_to_dict(obj):
    """Convert an object into a hash for debug."""
    return {key: getattr(obj, key) for key
            in dir(obj)
Esempio n. 15
0
    if not isinstance(value, dict):
        value = {CONF_ENTITIES: value}

    return value


GROUP_SCHEMA = vol.Schema({
    vol.Optional(CONF_ENTITIES): vol.Any(cv.entity_ids, None),
    CONF_VIEW: cv.boolean,
    CONF_NAME: cv.string,
    CONF_ICON: cv.icon,
    CONF_CONTROL: cv.string,
})

CONFIG_SCHEMA = vol.Schema({
    DOMAIN: cv.ordered_dict(vol.All(_conf_preprocess, GROUP_SCHEMA))
}, extra=vol.ALLOW_EXTRA)

# List of ON/OFF state tuples for groupable states
_GROUP_TYPES = [(STATE_ON, STATE_OFF), (STATE_HOME, STATE_NOT_HOME),
                (STATE_OPEN, STATE_CLOSED), (STATE_LOCKED, STATE_UNLOCKED)]


def _get_group_on_off(state):
    """Determine the group on/off states based on a state."""
    for states in _GROUP_TYPES:
        if state in states:
            return states

    return None, None
Esempio n. 16
0
    SUPPORT_PREVIOUS_TRACK, SUPPORT_SELECT_SOURCE, PLATFORM_SCHEMA,
    MediaPlayerDevice)
from homeassistant.const import (CONF_HOST, CONF_NAME, STATE_OFF, STATE_PAUSED,
                                 STATE_ON, STATE_PLAYING)

REQUIREMENTS = ['pdunehd==1.3']

DEFAULT_NAME = 'DuneHD'

CONF_SOURCES = 'sources'

PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
    vol.Required(CONF_HOST):
    cv.string,
    vol.Optional(CONF_SOURCES):
    cv.ordered_dict(cv.string, cv.string),
    vol.Optional(CONF_NAME, default=DEFAULT_NAME):
    cv.string,
})

DUNEHD_PLAYER_SUPPORT = \
    SUPPORT_PAUSE | SUPPORT_TURN_ON | SUPPORT_TURN_OFF | \
    SUPPORT_SELECT_SOURCE | SUPPORT_PREVIOUS_TRACK | SUPPORT_NEXT_TRACK


# pylint: disable=unused-argument
def setup_platform(hass, config, add_devices, discovery_info=None):
    """Set up the media player demo platform."""
    sources = config.get(CONF_SOURCES, {})

    from pdunehd import DuneHDPlayer
Esempio n. 17
0
group: !include groups.yaml
"""


PACKAGES_CONFIG_SCHEMA = vol.Schema({
    cv.slug: vol.Schema(  # Package names are slugs
        {cv.slug: vol.Any(dict, list)})  # Only slugs for component names
})

CUSTOMIZE_CONFIG_SCHEMA = vol.Schema({
    vol.Optional(CONF_CUSTOMIZE, default={}):
        vol.Schema({cv.entity_id: dict}),
    vol.Optional(CONF_CUSTOMIZE_DOMAIN, default={}):
        vol.Schema({cv.string: dict}),
    vol.Optional(CONF_CUSTOMIZE_GLOB, default={}):
        cv.ordered_dict(OrderedDict, cv.string),
})

CORE_CONFIG_SCHEMA = CUSTOMIZE_CONFIG_SCHEMA.extend({
    CONF_NAME: vol.Coerce(str),
    CONF_LATITUDE: cv.latitude,
    CONF_LONGITUDE: cv.longitude,
    CONF_ELEVATION: vol.Coerce(int),
    vol.Optional(CONF_TEMPERATURE_UNIT): cv.temperature_unit,
    CONF_UNIT_SYSTEM: cv.unit_system,
    CONF_TIME_ZONE: cv.time_zone,
    vol.Optional(CONF_PACKAGES, default={}): PACKAGES_CONFIG_SCHEMA,
})


def get_default_config_dir() -> str: