bad characters in DomainnameOption could be in warning level
This commit is contained in:
@ -1,8 +1,10 @@
|
||||
import autopath
|
||||
import warnings
|
||||
from py.test import raises
|
||||
|
||||
from tiramisu.config import Config
|
||||
from tiramisu.option import DomainnameOption, EmailOption, URLOption, OptionDescription
|
||||
from tiramisu.error import ValueWarning
|
||||
|
||||
|
||||
def test_domainname():
|
||||
@ -15,28 +17,63 @@ def test_domainname():
|
||||
c.d = 'toto.com'
|
||||
raises(ValueError, "c.d = 'toto'")
|
||||
c.d = 'toto3.com'
|
||||
raises(ValueError, "c.d = 'toto3.3la'")
|
||||
#raises(ValueError, "c.d = '3toto.com'")
|
||||
raises(ValueError, "c.d = 'toto.co3'")
|
||||
raises(ValueError, "c.d = 'toto_super.com'")
|
||||
c.d = 'toto-.com'
|
||||
raises(ValueError, "c.d = 'toto..com'")
|
||||
#
|
||||
c.f = 'toto.com'
|
||||
c.f = 'toto'
|
||||
raises(ValueError, "c.f = 'domainnametoolongthathavemorethanmaximumsizeforatruedomainnameanditsnoteasytogeneratesolongdomainnamewithoutrepeatdomainnametoolongthathavemorethanmaximumsizeforatruedomainnameanditsnoteasytogeneratesolongdomainnamewithoutrepeatbutimnotabletodoitnowiendityeah'")
|
||||
c.f = 'domainnametoolongthathavemorethanmaximumsizeforatruedomainnamea'
|
||||
raises(ValueError, "c.f = 'domainnametoolongthathavemorethanmaximumsizeforatruedomainnamean'")
|
||||
c.f = 'domainnametoolongthathavemorethanmaximumsizeforatruedomainnamea.nd'
|
||||
c.f = 'domainnametoolongthathavemorethanmaximumsizeforatruedomainnamea.nditsnoteasytogeneratesolongdomainnamewithoutrepeatdomainnameto.olongthathavemorethanmaximumsizeforatruedomainnameanditsnoteas.ytogeneratesolongdomainnamewithoutrepeatbutimnotabletodoitnowie'
|
||||
raises(ValueError, "c.f = 'domainnametoolongthathavemorethanmaximumsizeforatruedomainnamea.nditsnoteasytogeneratesolongdomainnamewithoutrepeatdomainnameto.olongthathavemorethanmaximumsizeforatruedomainnameanditsnoteas.ytogeneratesolongdomainnamewithoutrepeatbutimnotabletodoitnowien'")
|
||||
raises(ValueError, "c.f = 'd'")
|
||||
raises(ValueError, "c.f = 'd.t'")
|
||||
#
|
||||
c.g = 'toto.com'
|
||||
c.g = '192.168.1.0'
|
||||
c.g = '192.168.1.29'
|
||||
|
||||
|
||||
def test_domainname_warning():
|
||||
d = DomainnameOption('d', '', warnings_only=True)
|
||||
f = DomainnameOption('f', '', allow_without_dot=True, warnings_only=True)
|
||||
g = DomainnameOption('g', '', allow_ip=True, warnings_only=True)
|
||||
od = OptionDescription('a', '', [d, f, g])
|
||||
warnings.simplefilter("always", ValueWarning)
|
||||
c = Config(od)
|
||||
c.read_write()
|
||||
c.d = 'toto.com'
|
||||
raises(ValueError, "c.d = 'toto'")
|
||||
c.d = 'toto3.com'
|
||||
with warnings.catch_warnings(record=True) as w:
|
||||
c.d = 'toto_super.com'
|
||||
assert len(w) == 1
|
||||
c.d = 'toto-.com'
|
||||
raises(ValueError, "c.d = 'toto..com'")
|
||||
#
|
||||
c.f = 'toto.com'
|
||||
c.f = 'toto'
|
||||
c.f = 'domainnametoolongthathavemorethanmaximumsizeforatruedomainnamea'
|
||||
raises(ValueError, "c.f = 'domainnametoolongthathavemorethanmaximumsizeforatruedomainnamean'")
|
||||
c.f = 'domainnametoolongthathavemorethanmaximumsizeforatruedomainnamea.nd'
|
||||
c.f = 'domainnametoolongthathavemorethanmaximumsizeforatruedomainnamea.nditsnoteasytogeneratesolongdomainnamewithoutrepeatdomainnameto.olongthathavemorethanmaximumsizeforatruedomainnameanditsnoteas.ytogeneratesolongdomainnamewithoutrepeatbutimnotabletodoitnowie'
|
||||
raises(ValueError, "c.f = 'domainnametoolongthathavemorethanmaximumsizeforatruedomainnamea.nditsnoteasytogeneratesolongdomainnamewithoutrepeatdomainnameto.olongthathavemorethanmaximumsizeforatruedomainnameanditsnoteas.ytogeneratesolongdomainnamewithoutrepeatbutimnotabletodoitnowien'")
|
||||
raises(ValueError, "c.f = 'd'")
|
||||
raises(ValueError, "c.f = 'd.t'")
|
||||
#
|
||||
c.g = 'toto.com'
|
||||
c.g = '192.168.1.0'
|
||||
c.g = '192.168.1.29'
|
||||
|
||||
|
||||
def test_special_domain_name():
|
||||
"""domain name option that starts with a number or not
|
||||
"""
|
||||
d = DomainnameOption('d', '')
|
||||
e = DomainnameOption('e', '', type_='netbios')
|
||||
od = OptionDescription('a', '', [d,e])
|
||||
od = OptionDescription('a', '', [d, e])
|
||||
c = Config(od)
|
||||
c.read_write()
|
||||
c.d = '1toto.com'
|
||||
|
@ -77,6 +77,11 @@ def test_force_default_on_freeze():
|
||||
assert config.getowner(dummy2) == owners.user
|
||||
raises(ConfigError, "config.cfgimpl_get_values().setowner(dummy1, owners.frozen)")
|
||||
raises(PropertiesOptionError, "config.cfgimpl_get_values().setowner(dummy2, owners.frozen)")
|
||||
raises(PropertiesOptionError, "del(config.dummy1)")
|
||||
setting[dummy1].remove('frozen')
|
||||
del(config.dummy1)
|
||||
setting[dummy1].append('frozen')
|
||||
raises(ConfigError, "config.cfgimpl_get_values().setowner(dummy1, owners.frozen)")
|
||||
|
||||
|
||||
def test_force_default_on_freeze_multi():
|
||||
@ -99,6 +104,11 @@ def test_force_default_on_freeze_multi():
|
||||
assert config.getowner(dummy2) == owners.user
|
||||
raises(ConfigError, "config.cfgimpl_get_values().setowner(dummy1, owners.frozenmulti)")
|
||||
raises(PropertiesOptionError, "config.cfgimpl_get_values().setowner(dummy2, owners.frozenmulti)")
|
||||
raises(PropertiesOptionError, "del(config.dummy1)")
|
||||
setting[dummy1].remove('frozen')
|
||||
del(config.dummy1)
|
||||
setting[dummy1].append('frozen')
|
||||
raises(ConfigError, "config.cfgimpl_get_values().setowner(dummy1, owners.frozenmulti)")
|
||||
|
||||
|
||||
def test_overrides_changes_option_value():
|
||||
|
Reference in New Issue
Block a user