def test_invalid_objetos(self):
self.assertRaises(MultipleInvalid, Objeto, id='1')
self.assertRaises(MultipleInvalid, Objeto, item=None)
python类MultipleInvalid()的实例源码
def test_invalid_coletas(self):
self.assertRaises(MultipleInvalid, Coleta, codigo='abc')
def __init__(self, **kargs):
super(EntityBase, self).__init__(kargs)
self.validate()
try:
raise getattr(self, 'error')
except AttributeError:
pass
except Invalid as e:
raise MultipleInvalid([e])
def test_invalid_products(self):
self.assertRaises(MultipleInvalid, Produto, codigo='abc')
def test_invalid_coletas(self):
self.assertRaises(MultipleInvalid, ColetaSimultanea, codigo='abc')
def test_invalid_objetos(self):
self.assertRaises(MultipleInvalid, Objeto, id='1')
self.assertRaises(MultipleInvalid, Objeto, item=None)
def test_invalid_coletas(self):
self.assertRaises(MultipleInvalid, Coleta, codigo='abc')
def test_boolean():
"""Test boolean validation."""
schema = vol.Schema(cv.boolean)
for value in ('T', 'negative', 'lock'):
with pytest.raises(vol.MultipleInvalid):
schema(value)
for value in ('true', 'On', '1', 'YES', 'enable', 1, True):
assert schema(value)
for value in ('false', 'Off', '0', 'NO', 'disable', 0, False):
assert not schema(value)
def test_latitude():
"""Test latitude validation."""
schema = vol.Schema(cv.latitude)
for value in ('invalid', None, -91, 91, '-91', '91', '123.01A'):
with pytest.raises(vol.MultipleInvalid):
schema(value)
for value in ('-89', 89, '12.34'):
schema(value)
def test_longitude():
"""Test longitude validation."""
schema = vol.Schema(cv.longitude)
for value in ('invalid', None, -181, 181, '-181', '181', '123.01A'):
with pytest.raises(vol.MultipleInvalid):
schema(value)
for value in ('-179', 179, '12.34'):
schema(value)
def test_port():
"""Test TCP/UDP network port."""
schema = vol.Schema(cv.port)
for value in ('invalid', None, -1, 0, 80000, '81000'):
with pytest.raises(vol.MultipleInvalid):
schema(value)
for value in ('1000', 21, 24574):
schema(value)
def test_url():
"""Test URL."""
schema = vol.Schema(cv.url)
for value in ('invalid', None, 100, 'htp://ha.io', 'http//ha.io',
'http://??,**', 'https://??,**'):
with pytest.raises(vol.MultipleInvalid):
schema(value)
for value in ('http://localhost', 'https://localhost/test/index.html',
'http://home-assistant.io', 'http://home-assistant.io/test/',
'https://community.home-assistant.io/'):
assert schema(value)
def test_icon():
"""Test icon validation."""
schema = vol.Schema(cv.icon)
for value in (False, 'work', 'icon:work'):
with pytest.raises(vol.MultipleInvalid):
schema(value)
schema('mdi:work')
def test_service():
"""Test service validation."""
schema = vol.Schema(cv.service)
with pytest.raises(vol.MultipleInvalid):
schema('invalid_turn_on')
schema('scarlett_os.turn_on')
def test_slug():
"""Test slug validation."""
schema = vol.Schema(cv.slug)
for value in (None, 'hello world'):
with pytest.raises(vol.MultipleInvalid):
schema(value)
for value in (12345, 'hello'):
schema(value)
def test_temperature_unit():
"""Test temperature unit validation."""
schema = vol.Schema(cv.temperature_unit)
with pytest.raises(vol.MultipleInvalid):
schema('K')
schema('C')
schema('F')
def test_time_zone():
"""Test time zone validation."""
schema = vol.Schema(cv.time_zone)
with pytest.raises(vol.MultipleInvalid):
schema('America/Do_Not_Exist')
schema('America/Los_Angeles')
schema('UTC')
def test_has_at_least_one_key():
"""Test has_at_least_one_key validator."""
schema = vol.Schema(cv.has_at_least_one_key('beer', 'soda'))
for value in (None, [], {}, {'wine': None}):
with pytest.raises(vol.MultipleInvalid):
schema(value)
for value in ({'beer': None}, {'soda': None}):
schema(value)
def process_config_domain(self):
log.log(log.LOG_INFO, "Processing Domains")
for domain in self.get_config_section('domain'):
try:
self.validator.domain(domain)
except MultipleInvalid as e:
log.log(log.LOG_WARN, "Cannot create Domain '{0}': YAML validation Error: {1}".format(domain['name'], e))
continue
try:
dom_id = self.fm.domains.show(domain['name'])['id']
log.log(log.LOG_DEBUG, "Domain '{0}' (id={1}) already present.".format(domain['name'], dom_id))
except:
dns_proxy_id = False
try:
dns_proxy_id = self.fm.smart_proxies.show(domain['dns-proxy'])['id']
except:
log.log(log.LOG_WARN, "Cannot get ID of DNS Smart Proxy '{0}', skipping".format(domain['dns-proxy']))
log.log(log.LOG_INFO, "Create Domain '{0}'".format(domain['name']))
dom_params = []
if (domain['parameters']):
for name,value in domain['parameters'].iteritems():
p = {
'name': name,
'value': value
}
dom_params.append(p)
dom_tpl = {
'name': domain['name'],
'fullname': domain['fullname'],
}
fixdom = {
'domain_parameters_attributes': dom_params
}
if dns_proxy_id: dom_tpl['dns_id'] = dns_proxy_id
domo = self.fm.domains.create( domain = dom_tpl )
if dom_params:
self.fm.domains.update(fixdom, domo['id'])
def process_config_os(self):
log.log(log.LOG_INFO, "Processing Operating Systems")
for operatingsystem in self.get_config_section('os'):
try:
self.validator.os(operatingsystem)
except MultipleInvalid as e:
log.log(log.LOG_WARN, "Cannot create Operating System '{0}': YAML validation Error: {1}".format(operatingsystem['name'], e))
continue
try:
os_id = self.fm.operatingsystems.show(operatingsystem['description'])['id']
log.log(log.LOG_DEBUG, "Operating System '{0}' (id={1}) already present.".format(operatingsystem['name'], os_id))
except:
log.log(log.LOG_INFO, "Create Operating System '{0}'".format(operatingsystem['name']))
os_tpl = {
'name': operatingsystem['name'],
'description': operatingsystem['description'],
'major': operatingsystem['major'],
'minor': operatingsystem['minor'],
'family': operatingsystem['family'],
'release_name': operatingsystem['release-name'],
'password_hash': operatingsystem['password-hash']
}
os_obj = self.fm.operatingsystems.create(operatingsystem=os_tpl)
# host_params
if operatingsystem['parameters'] is not None:
for name,value in operatingsystem['parameters'].iteritems():
p = {
'name': name,
'value': value
}
try:
self.fm.operatingsystems.parameters_create(os_obj['id'], p )
except:
log.log(log.LOG_WARN, "Error adding host parameter '{0}'".format(name))