Exemplo n.º 1
0
def test_validate_entity_config():
    """Test validate entities."""
    configs = [{
        'invalid_entity_id': {}
    }, {
        'demo.test': 1
    }, {
        'demo.test': 'test'
    }, {
        'demo.test': [1, 2]
    }, {
        'demo.test': None
    }, {
        'demo.test': {
            CONF_NAME: None
        }
    }]

    for conf in configs:
        with pytest.raises(vol.Invalid):
            vec(conf)

    assert vec({}) == {}
    assert vec({'demo.test': {CONF_NAME: 'Name'}}) == \
        {'demo.test': {CONF_NAME: 'Name'}}

    assert vec({'alarm_control_panel.demo': {}}) == \
        {'alarm_control_panel.demo': {ATTR_CODE: None}}
    assert vec({'alarm_control_panel.demo': {ATTR_CODE: '1234'}}) == \
        {'alarm_control_panel.demo': {ATTR_CODE: '1234'}}

    assert vec({'lock.demo': {}}) == {'lock.demo': {ATTR_CODE: None}}
    assert vec({'lock.demo': {ATTR_CODE: '1234'}}) == \
        {'lock.demo': {ATTR_CODE: '1234'}}
Exemplo n.º 2
0
    def test_validate_entity_config(self):
        """Test validate entities."""
        configs = [{'invalid_entity_id': {}}, {'demo.test': 1},
                   {'demo.test': 'test'}, {'demo.test': [1, 2]},
                   {'demo.test': None}]

        for conf in configs:
            with self.assertRaises(vol.Invalid):
                vec(conf)

        self.assertEqual(vec({}), {})
        self.assertEqual(
            vec({'alarm_control_panel.demo': {ATTR_CODE: '1234'}}),
            {'alarm_control_panel.demo': {ATTR_CODE: '1234'}})
Exemplo n.º 3
0
def test_validate_entity_config():
    """Test validate entities."""
    configs = [
        None, [], 'string', 12345, {
            'invalid_entity_id': {}
        }, {
            'demo.test': 1
        }, {
            'demo.test': 'test'
        }, {
            'demo.test': [1, 2]
        }, {
            'demo.test': None
        }, {
            'demo.test': {
                CONF_NAME: None
            }
        }, {
            'media_player.test': {
                CONF_FEATURE_LIST: [{
                    CONF_FEATURE: 'invalid_feature'
                }]
            }
        }, {
            'media_player.test': {
                CONF_FEATURE_LIST: [{
                    CONF_FEATURE: FEATURE_ON_OFF
                }, {
                    CONF_FEATURE: FEATURE_ON_OFF
                }]
            }
        }, {
            'switch.test': {
                CONF_TYPE: 'invalid_type'
            }
        }
    ]

    for conf in configs:
        with pytest.raises(vol.Invalid):
            vec(conf)

    assert vec({}) == {}
    assert vec({'demo.test': {CONF_NAME: 'Name'}}) == \
        {'demo.test': {CONF_NAME: 'Name'}}

    assert vec({'alarm_control_panel.demo': {}}) == \
        {'alarm_control_panel.demo': {ATTR_CODE: None}}
    assert vec({'alarm_control_panel.demo': {ATTR_CODE: '1234'}}) == \
        {'alarm_control_panel.demo': {ATTR_CODE: '1234'}}

    assert vec({'lock.demo': {}}) == {'lock.demo': {ATTR_CODE: None}}
    assert vec({'lock.demo': {ATTR_CODE: '1234'}}) == \
        {'lock.demo': {ATTR_CODE: '1234'}}

    assert vec({'media_player.demo': {}}) == \
        {'media_player.demo': {CONF_FEATURE_LIST: {}}}
    config = {
        CONF_FEATURE_LIST: [{
            CONF_FEATURE: FEATURE_ON_OFF
        }, {
            CONF_FEATURE: FEATURE_PLAY_PAUSE
        }]
    }
    assert vec({'media_player.demo': config}) == \
        {'media_player.demo': {CONF_FEATURE_LIST:
                               {FEATURE_ON_OFF: {}, FEATURE_PLAY_PAUSE: {}}}}

    assert vec({'switch.demo': {CONF_TYPE: TYPE_FAUCET}}) == \
        {'switch.demo': {CONF_TYPE: TYPE_FAUCET}}
    assert vec({'switch.demo': {CONF_TYPE: TYPE_OUTLET}}) == \
        {'switch.demo': {CONF_TYPE: TYPE_OUTLET}}
    assert vec({'switch.demo': {CONF_TYPE: TYPE_SHOWER}}) == \
        {'switch.demo': {CONF_TYPE: TYPE_SHOWER}}
    assert vec({'switch.demo': {CONF_TYPE: TYPE_SPRINKLER}}) == \
        {'switch.demo': {CONF_TYPE: TYPE_SPRINKLER}}
    assert vec({'switch.demo': {CONF_TYPE: TYPE_SWITCH}}) == \
        {'switch.demo': {CONF_TYPE: TYPE_SWITCH}}
    assert vec({'switch.demo': {CONF_TYPE: TYPE_VALVE}}) == \
        {'switch.demo': {CONF_TYPE: TYPE_VALVE}}
Exemplo n.º 4
0
def test_validate_entity_config():
    """Test validate entities."""
    configs = [
        None,
        [],
        "string",
        12345,
        {
            "invalid_entity_id": {}
        },
        {
            "demo.test": 1
        },
        {
            "binary_sensor.demo": {
                CONF_LINKED_BATTERY_SENSOR: None
            }
        },
        {
            "binary_sensor.demo": {
                CONF_LINKED_BATTERY_SENSOR: "switch.demo"
            }
        },
        {
            "binary_sensor.demo": {
                CONF_LOW_BATTERY_THRESHOLD: "switch.demo"
            }
        },
        {
            "binary_sensor.demo": {
                CONF_LOW_BATTERY_THRESHOLD: -10
            }
        },
        {
            "demo.test": "test"
        },
        {
            "demo.test": [1, 2]
        },
        {
            "demo.test": None
        },
        {
            "demo.test": {
                CONF_NAME: None
            }
        },
        {
            "media_player.test": {
                CONF_FEATURE_LIST: [{
                    CONF_FEATURE: "invalid_feature"
                }]
            }
        },
        {
            "media_player.test": {
                CONF_FEATURE_LIST: [
                    {
                        CONF_FEATURE: FEATURE_ON_OFF
                    },
                    {
                        CONF_FEATURE: FEATURE_ON_OFF
                    },
                ]
            }
        },
        {
            "switch.test": {
                CONF_TYPE: "invalid_type"
            }
        },
    ]

    for conf in configs:
        with pytest.raises(vol.Invalid):
            vec(conf)

    assert vec({}) == {}
    assert vec({"demo.test": {
        CONF_NAME: "Name"
    }}) == {
        "demo.test": {
            CONF_NAME: "Name",
            CONF_LOW_BATTERY_THRESHOLD: 20
        }
    }

    assert vec({
        "binary_sensor.demo": {
            CONF_LINKED_BATTERY_SENSOR: "sensor.demo_battery"
        }
    }) == {
        "binary_sensor.demo": {
            CONF_LINKED_BATTERY_SENSOR: "sensor.demo_battery",
            CONF_LOW_BATTERY_THRESHOLD: 20,
        }
    }
    assert vec({"binary_sensor.demo": {
        CONF_LOW_BATTERY_THRESHOLD: 50
    }}) == {
        "binary_sensor.demo": {
            CONF_LOW_BATTERY_THRESHOLD: 50
        }
    }

    assert vec({"alarm_control_panel.demo": {}}) == {
        "alarm_control_panel.demo": {
            ATTR_CODE: None,
            CONF_LOW_BATTERY_THRESHOLD: 20
        }
    }
    assert vec({"alarm_control_panel.demo": {
        ATTR_CODE: "1234"
    }}) == {
        "alarm_control_panel.demo": {
            ATTR_CODE: "1234",
            CONF_LOW_BATTERY_THRESHOLD: 20
        }
    }

    assert vec({"lock.demo": {}}) == {
        "lock.demo": {
            ATTR_CODE: None,
            CONF_LOW_BATTERY_THRESHOLD: 20
        }
    }
    assert vec({"lock.demo": {
        ATTR_CODE: "1234"
    }}) == {
        "lock.demo": {
            ATTR_CODE: "1234",
            CONF_LOW_BATTERY_THRESHOLD: 20
        }
    }

    assert vec({"media_player.demo": {}}) == {
        "media_player.demo": {
            CONF_FEATURE_LIST: {},
            CONF_LOW_BATTERY_THRESHOLD: 20
        }
    }
    config = {
        CONF_FEATURE_LIST: [
            {
                CONF_FEATURE: FEATURE_ON_OFF
            },
            {
                CONF_FEATURE: FEATURE_PLAY_PAUSE
            },
        ]
    }
    assert vec({"media_player.demo": config}) == {
        "media_player.demo": {
            CONF_FEATURE_LIST: {
                FEATURE_ON_OFF: {},
                FEATURE_PLAY_PAUSE: {}
            },
            CONF_LOW_BATTERY_THRESHOLD: 20,
        }
    }

    assert vec({"switch.demo": {
        CONF_TYPE: TYPE_FAUCET
    }}) == {
        "switch.demo": {
            CONF_TYPE: TYPE_FAUCET,
            CONF_LOW_BATTERY_THRESHOLD: 20
        }
    }
    assert vec({"switch.demo": {
        CONF_TYPE: TYPE_OUTLET
    }}) == {
        "switch.demo": {
            CONF_TYPE: TYPE_OUTLET,
            CONF_LOW_BATTERY_THRESHOLD: 20
        }
    }
    assert vec({"switch.demo": {
        CONF_TYPE: TYPE_SHOWER
    }}) == {
        "switch.demo": {
            CONF_TYPE: TYPE_SHOWER,
            CONF_LOW_BATTERY_THRESHOLD: 20
        }
    }
    assert vec({"switch.demo": {
        CONF_TYPE: TYPE_SPRINKLER
    }}) == {
        "switch.demo": {
            CONF_TYPE: TYPE_SPRINKLER,
            CONF_LOW_BATTERY_THRESHOLD: 20
        }
    }
    assert vec({"switch.demo": {
        CONF_TYPE: TYPE_SWITCH
    }}) == {
        "switch.demo": {
            CONF_TYPE: TYPE_SWITCH,
            CONF_LOW_BATTERY_THRESHOLD: 20
        }
    }
    assert vec({"switch.demo": {
        CONF_TYPE: TYPE_VALVE
    }}) == {
        "switch.demo": {
            CONF_TYPE: TYPE_VALVE,
            CONF_LOW_BATTERY_THRESHOLD: 20
        }
    }
Exemplo n.º 5
0
def test_validate_entity_config():
    """Test validate entities."""
    configs = [{'invalid_entity_id': {}}, {'demo.test': 1},
               {'demo.test': 'test'}, {'demo.test': [1, 2]},
               {'demo.test': None}, {'demo.test': {CONF_NAME: None}},
               {'media_player.test': {CONF_FEATURE_LIST: [
                    {CONF_FEATURE: 'invalid_feature'}]}},
               {'media_player.test': {CONF_FEATURE_LIST: [
                    {CONF_FEATURE: FEATURE_ON_OFF},
                    {CONF_FEATURE: FEATURE_ON_OFF}]}},
               {'switch.test': {CONF_TYPE: 'invalid_type'}}]

    for conf in configs:
        with pytest.raises(vol.Invalid):
            vec(conf)

    assert vec({}) == {}
    assert vec({'demo.test': {CONF_NAME: 'Name'}}) == \
        {'demo.test': {CONF_NAME: 'Name'}}

    assert vec({'alarm_control_panel.demo': {}}) == \
        {'alarm_control_panel.demo': {ATTR_CODE: None}}
    assert vec({'alarm_control_panel.demo': {ATTR_CODE: '1234'}}) == \
        {'alarm_control_panel.demo': {ATTR_CODE: '1234'}}

    assert vec({'lock.demo': {}}) == {'lock.demo': {ATTR_CODE: None}}
    assert vec({'lock.demo': {ATTR_CODE: '1234'}}) == \
        {'lock.demo': {ATTR_CODE: '1234'}}

    assert vec({'media_player.demo': {}}) == \
        {'media_player.demo': {CONF_FEATURE_LIST: {}}}
    config = {CONF_FEATURE_LIST: [{CONF_FEATURE: FEATURE_ON_OFF},
                                  {CONF_FEATURE: FEATURE_PLAY_PAUSE}]}
    assert vec({'media_player.demo': config}) == \
        {'media_player.demo': {CONF_FEATURE_LIST:
                               {FEATURE_ON_OFF: {}, FEATURE_PLAY_PAUSE: {}}}}
    assert vec({'switch.demo': {CONF_TYPE: TYPE_OUTLET}}) == \
        {'switch.demo': {CONF_TYPE: TYPE_OUTLET}}