DomainnameOption now works with default value

This commit is contained in:
Emmanuel Garette 2013-05-10 09:27:54 +02:00
parent 6de65859b4
commit 6ffd71a43e
2 changed files with 12 additions and 8 deletions

View File

@ -7,7 +7,8 @@ from tiramisu.option import DomainnameOption, OptionDescription
def test_domainname(): def test_domainname():
d = DomainnameOption('d', '') d = DomainnameOption('d', '')
od = OptionDescription('a', '', [d]) e = DomainnameOption('e', '', "toto.com")
od = OptionDescription('a', '', [d, e])
c = Config(od) c = Config(od)
c.d = 'toto.com' c.d = 'toto.com'
raises(ValueError, "c.d = 'toto'") raises(ValueError, "c.d = 'toto'")
@ -21,7 +22,8 @@ def test_domainname():
def test_domainname_netbios(): def test_domainname_netbios():
d = DomainnameOption('d', '', type_='netbios') d = DomainnameOption('d', '', type_='netbios')
od = OptionDescription('a', '', [d]) e = DomainnameOption('e', '', "toto", type_='netbios')
od = OptionDescription('a', '', [d, e])
c = Config(od) c = Config(od)
raises(ValueError, "c.d = 'toto.com'") raises(ValueError, "c.d = 'toto.com'")
c.d = 'toto' c.d = 'toto'
@ -30,7 +32,8 @@ def test_domainname_netbios():
def test_domainname_hostname(): def test_domainname_hostname():
d = DomainnameOption('d', '', type_='hostname') d = DomainnameOption('d', '', type_='hostname')
od = OptionDescription('a', '', [d]) e = DomainnameOption('e', '', "toto", type_='hostname')
od = OptionDescription('a', '', [d, e])
c = Config(od) c = Config(od)
raises(ValueError, "c.d = 'toto.com'") raises(ValueError, "c.d = 'toto.com'")
c.d = 'toto' c.d = 'toto'

View File

@ -528,7 +528,6 @@ class NetmaskOption(Option):
class DomainnameOption(Option): class DomainnameOption(Option):
__slots__ = ('_opt_type', '_type', '_allow_ip') __slots__ = ('_opt_type', '_type', '_allow_ip')
_opt_type = 'domainname' _opt_type = 'domainname'
#allow_ip
def __init__(self, name, doc, default=None, default_multi=None, def __init__(self, name, doc, default=None, default_multi=None,
requires=None, multi=False, callback=None, requires=None, multi=False, callback=None,
@ -538,6 +537,12 @@ class DomainnameOption(Option):
#hostname: to identify the device #hostname: to identify the device
#domainname: #domainname:
#fqdn: with tld, not supported yet #fqdn: with tld, not supported yet
if type_ not in ['netbios', 'hostname', 'domainname']:
raise ValueError(_('unknown type_ {0} for hostname').format(type_))
self._type = type_
if allow_ip not in [True, False]:
raise ValueError(_('allow_ip must be a boolean'))
self._allow_ip = allow_ip
super(DomainnameOption, self).__init__(name, doc, default=default, super(DomainnameOption, self).__init__(name, doc, default=default,
default_multi=default_multi, default_multi=default_multi,
callback=callback, callback=callback,
@ -547,10 +552,6 @@ class DomainnameOption(Option):
validator=validator, validator=validator,
validator_args=validator_args, validator_args=validator_args,
properties=properties) properties=properties)
if type_ not in ['netbios', 'hostname', 'domainname']:
raise ValueError(_('unknown type_ {0} for hostname').format(type_))
self._type = type_
self._allow_ip = allow_ip
def _validate(self, value): def _validate(self, value):
if self._allow_ip is True: if self._allow_ip is True: