remove pep8 validation errors
This commit is contained in:
parent
6cc74506fb
commit
44cd618704
37 changed files with 146 additions and 346 deletions
|
@ -7,8 +7,8 @@ checkout)
|
|||
from os.path import dirname, abspath, join, normpath
|
||||
import sys
|
||||
|
||||
HERE = dirname(abspath(__file__))
|
||||
PATH = normpath(join(HERE, '..', 'tiramisu'))
|
||||
if PATH not in sys.path:
|
||||
sys.path.insert(1, PATH)
|
||||
|
||||
def do_autopath():
|
||||
HERE = dirname(abspath(__file__))
|
||||
PATH = normpath(join(HERE, '..', 'tiramisu'))
|
||||
if PATH not in sys.path:
|
||||
sys.path.insert(1, PATH)
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
# coding: utf-8
|
||||
import autopath
|
||||
from autopath import do_autopath
|
||||
do_autopath()
|
||||
|
||||
from tiramisu import setting
|
||||
setting.expires_time = 1
|
||||
from tiramisu.option import IntOption, OptionDescription
|
||||
|
@ -20,9 +22,10 @@ def make_description():
|
|||
|
||||
def test_cache_config():
|
||||
od1 = make_description()
|
||||
assert od1.impl_already_build_caches() == False
|
||||
assert od1.impl_already_build_caches() is False
|
||||
c = Config(od1)
|
||||
assert od1.impl_already_build_caches() == True
|
||||
assert od1.impl_already_build_caches() is True
|
||||
c
|
||||
|
||||
|
||||
def test_cache():
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
# coding: utf-8
|
||||
import autopath
|
||||
from autopath import do_autopath
|
||||
do_autopath()
|
||||
|
||||
from tiramisu.setting import owners
|
||||
from tiramisu.option import ChoiceOption, StrOption, OptionDescription
|
||||
|
|
|
@ -2,8 +2,9 @@
|
|||
|
||||
"""theses tests are much more to test that config, option description, vs...
|
||||
**it's there** and answers via attribute access"""
|
||||
from autopath import do_autopath
|
||||
do_autopath()
|
||||
|
||||
import autopath
|
||||
from py.test import raises
|
||||
|
||||
from tiramisu.config import Config, SubConfig
|
||||
|
@ -165,6 +166,7 @@ def test_config_impl_get_path_by_opt():
|
|||
dummy = config.unwrap_from_path('gc.dummy')
|
||||
boo = config.unwrap_from_path('bool')
|
||||
unknown = IntOption('test', '')
|
||||
unknown
|
||||
assert config.cfgimpl_get_description().impl_get_path_by_opt(boo) == 'bool'
|
||||
assert config.cfgimpl_get_description().impl_get_path_by_opt(dummy) == 'gc.dummy'
|
||||
raises(AttributeError, "config.cfgimpl_get_description().impl_get_path_by_opt(unknown)")
|
||||
|
@ -236,11 +238,13 @@ def test_values_not_setitem():
|
|||
d1 = OptionDescription('od', '', [g1, g2, g3, g4, g5])
|
||||
root = OptionDescription('root', '', [d1])
|
||||
config = Config(root)
|
||||
config
|
||||
raises(ConfigError, "config.cfgimpl_get_values()[g1] = 2")
|
||||
|
||||
|
||||
def test_duplicated_option():
|
||||
g1 = IntOption('g1', '', 1)
|
||||
g1
|
||||
#in same OptionDescription
|
||||
raises(ConflictError, "d1 = OptionDescription('od', '', [g1, g1])")
|
||||
|
||||
|
@ -250,12 +254,14 @@ def test_duplicated_option_diff_od():
|
|||
d1 = OptionDescription('od1', '', [g1])
|
||||
#in different OptionDescription
|
||||
d2 = OptionDescription('od2', '', [g1, d1])
|
||||
d2
|
||||
raises(ConflictError, 'Config(d2)')
|
||||
|
||||
|
||||
def test_cannot_assign_value_to_option_description():
|
||||
descr = make_description()
|
||||
cfg = Config(descr)
|
||||
cfg
|
||||
raises(TypeError, "cfg.gc = 3")
|
||||
|
||||
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
"configuration objects global API"
|
||||
import autopath
|
||||
from autopath import do_autopath
|
||||
do_autopath()
|
||||
|
||||
from py.test import raises
|
||||
|
||||
from tiramisu.config import Config
|
||||
|
@ -197,6 +199,7 @@ def test_find_multi():
|
|||
def test_does_not_find_in_config():
|
||||
descr = make_description()
|
||||
conf = Config(descr)
|
||||
conf
|
||||
raises(AttributeError, "conf.find(byname='IDontExist')")
|
||||
|
||||
|
||||
|
@ -266,14 +269,21 @@ def test_impl_getpaths():
|
|||
|
||||
|
||||
def test_invalid_option():
|
||||
ChoiceOption('a', '', ('1', '2'))
|
||||
raises(TypeError, "ChoiceOption('a', '', [1, 2])")
|
||||
raises(TypeError, "ChoiceOption('a', '', 1)")
|
||||
raises(ValueError, "ChoiceOption('a', '', (1,), 3)")
|
||||
FloatOption('a', '')
|
||||
raises(ValueError, "FloatOption('a', '', 'string')")
|
||||
UnicodeOption('a', '')
|
||||
raises(ValueError, "UnicodeOption('a', '', 1)")
|
||||
u = UnicodeOption('a', '')
|
||||
SymLinkOption('a', u)
|
||||
raises(ValueError, "SymLinkOption('a', 'string')")
|
||||
IPOption('a', '')
|
||||
raises(ValueError, "IPOption('a', '', 1)")
|
||||
raises(ValueError, "IPOption('a', '', 'string')")
|
||||
PortOption('a', '')
|
||||
raises(ValueError, "PortOption('a', '', 'string')")
|
||||
raises(ValueError, "PortOption('a', '', '11:12:13', allow_range=True)")
|
||||
raises(ValueError, "PortOption('a', '', 11111111111111111111)")
|
||||
|
@ -282,9 +292,13 @@ def test_invalid_option():
|
|||
raises(ValueError, "PortOption('a', '', allow_zero=True, allow_wellknown=False, allow_registred=False, allow_private=True)")
|
||||
raises(ValueError, "PortOption('a', '', allow_zero=True, allow_wellknown=False, allow_registred=True, allow_private=True)")
|
||||
raises(ValueError, "PortOption('a', '', allow_zero=False, allow_wellknown=False, allow_registred=False, allow_private=False)")
|
||||
NetworkOption('a', '')
|
||||
raises(ValueError, "NetworkOption('a', '', 'string')")
|
||||
NetmaskOption('a', '')
|
||||
raises(ValueError, "NetmaskOption('a', '', 'string')")
|
||||
BroadcastOption('a', '')
|
||||
raises(ValueError, "BroadcastOption('a', '', 'string')")
|
||||
DomainnameOption('a', '')
|
||||
raises(ValueError, "DomainnameOption('a', '', 'string')")
|
||||
raises(ValueError, "DomainnameOption('a', '', type_='string')")
|
||||
raises(ValueError, "DomainnameOption('a', '', allow_ip='string')")
|
||||
|
|
|
@ -1,258 +0,0 @@
|
|||
##just a proof of concept with a lot of options and option groups
|
||||
#import autopath
|
||||
#from tiramisu.config import *
|
||||
#from tiramisu.option import *
|
||||
|
||||
#all_modules = ['amon', 'sphynx', 'zephir']
|
||||
|
||||
#example__optiondescription = OptionDescription("objspace", "Object Space Options", [
|
||||
# ChoiceOption("name", "Object Space name",
|
||||
# ["std", "flow", "thunk", "dump", "taint"],
|
||||
# "std"),
|
||||
|
||||
# OptionDescription("opcodes", "opcodes to enable in the interpreter", [
|
||||
# BoolOption("CALL_LIKELY_BUILTIN", "emit a special bytecode for likely calls to builtin functions",
|
||||
# default=False,
|
||||
# requires=[("translation.stackless", False)]),
|
||||
# BoolOption("CALL_METHOD", "emit a special bytecode for expr.name()",
|
||||
# default=False),
|
||||
# ]),
|
||||
|
||||
# BoolOption("nofaking", "disallow faking in the object space",
|
||||
# default=False,
|
||||
# requires=[
|
||||
# ("objspace.usemodules.posix", True),
|
||||
# ("objspace.usemodules.time", True),
|
||||
# ("objspace.usemodules.errno", True)],
|
||||
# ),
|
||||
|
||||
# OptionDescription("usemodules", "Which Modules should be used", [
|
||||
# BoolOption(modname, "use module %s" % (modname, ),
|
||||
# default=True,
|
||||
# requires= [('amon', False)],
|
||||
# )
|
||||
# for modname in all_modules]),
|
||||
|
||||
# BoolOption("allworkingmodules", "use as many working modules as possible",
|
||||
# default=True,
|
||||
# ),
|
||||
|
||||
# BoolOption("translationmodules",
|
||||
# "use only those modules that are needed to run translate.py on pypy",
|
||||
# default=False,
|
||||
# ),
|
||||
|
||||
# BoolOption("geninterp", "specify whether geninterp should be used",
|
||||
# default=True),
|
||||
|
||||
# BoolOption("logbytecodes",
|
||||
# "keep track of bytecode usage",
|
||||
# default=False),
|
||||
|
||||
# BoolOption("usepycfiles", "Write and read pyc files when importing",
|
||||
# default=True),
|
||||
|
||||
# BoolOption("lonepycfiles", "Import pyc files with no matching py file",
|
||||
# default=False,
|
||||
# requires=[("objspace.usepycfiles", True)]),
|
||||
|
||||
# StrOption("soabi",
|
||||
# "Tag to differentiate extension modules built for different Python interpreters",
|
||||
# default=None),
|
||||
|
||||
# BoolOption("honor__builtins__",
|
||||
# "Honor the __builtins__ key of a module dictionary",
|
||||
# default=False),
|
||||
|
||||
# BoolOption("disable_call_speedhacks",
|
||||
# "make sure that all calls go through space.call_args",
|
||||
# default=False),
|
||||
|
||||
# BoolOption("timing",
|
||||
# "timing of various parts of the interpreter (simple profiling)",
|
||||
# default=False),
|
||||
|
||||
# OptionDescription("std", "Standard Object Space Options", [
|
||||
# BoolOption("withtproxy", "support transparent proxies",
|
||||
# default=True),
|
||||
|
||||
# BoolOption("withsmallint", "use tagged integers",
|
||||
# default=False,
|
||||
# requires=[("objspace.std.withprebuiltint", False),
|
||||
# ("translation.taggedpointers", True)]),
|
||||
|
||||
# BoolOption("withprebuiltint", "prebuild commonly used int objects",
|
||||
# default=False),
|
||||
|
||||
# IntOption("prebuiltintfrom", "lowest integer which is prebuilt",
|
||||
# default=-5),
|
||||
|
||||
# IntOption("prebuiltintto", "highest integer which is prebuilt",
|
||||
# default=100),
|
||||
|
||||
# BoolOption("withstrjoin", "use strings optimized for addition",
|
||||
# default=False),
|
||||
|
||||
# BoolOption("withstrslice", "use strings optimized for slicing",
|
||||
# default=False),
|
||||
|
||||
# BoolOption("withstrbuf", "use strings optimized for addition (ver 2)",
|
||||
# default=False),
|
||||
|
||||
# BoolOption("withprebuiltchar",
|
||||
# "use prebuilt single-character string objects",
|
||||
# default=False),
|
||||
|
||||
# BoolOption("sharesmallstr",
|
||||
# "always reuse the prebuilt string objects "
|
||||
# "(the empty string and potentially single-char strings)",
|
||||
# default=False),
|
||||
|
||||
# BoolOption("withrope", "use ropes as the string implementation",
|
||||
# default=False,
|
||||
# requires=[("objspace.std.withstrslice", False),
|
||||
# ("objspace.std.withstrjoin", False),
|
||||
# ("objspace.std.withstrbuf", False)],
|
||||
# ),
|
||||
|
||||
# BoolOption("withropeunicode", "use ropes for the unicode implementation",
|
||||
# default=False,
|
||||
# requires=[("objspace.std.withrope", True)]),
|
||||
|
||||
# BoolOption("withcelldict",
|
||||
# "use dictionaries that are optimized for being used as module dicts",
|
||||
# default=False,
|
||||
# requires=[("objspace.opcodes.CALL_LIKELY_BUILTIN", False),
|
||||
# ("objspace.honor__builtins__", False)]),
|
||||
|
||||
# BoolOption("withdictmeasurement",
|
||||
# "create huge files with masses of information "
|
||||
# "about dictionaries",
|
||||
# default=False),
|
||||
|
||||
# BoolOption("withmapdict",
|
||||
# "make instances really small but slow without the JIT",
|
||||
# default=False,
|
||||
# requires=[("objspace.std.getattributeshortcut", True),
|
||||
# ("objspace.std.withtypeversion", True),
|
||||
# ]),
|
||||
|
||||
# BoolOption("withrangelist",
|
||||
# "enable special range list implementation that does not "
|
||||
# "actually create the full list until the resulting "
|
||||
# "list is mutated",
|
||||
# default=False),
|
||||
|
||||
# BoolOption("withtypeversion",
|
||||
# "version type objects when changing them",
|
||||
# default=False,
|
||||
# # weakrefs needed, because of get_subclasses()
|
||||
# requires=[("translation.rweakref", True)]),
|
||||
|
||||
# BoolOption("withmethodcache",
|
||||
# "try to cache method lookups",
|
||||
# default=False,
|
||||
# requires=[("objspace.std.withtypeversion", True),
|
||||
# ("translation.rweakref", True)]),
|
||||
# BoolOption("withmethodcachecounter",
|
||||
# "try to cache methods and provide a counter in __pypy__. "
|
||||
# "for testing purposes only.",
|
||||
# default=False,
|
||||
# requires=[("objspace.std.withmethodcache", True)]),
|
||||
# IntOption("methodcachesizeexp",
|
||||
# " 2 ** methodcachesizeexp is the size of the of the method cache ",
|
||||
# default=11),
|
||||
# BoolOption("optimized_int_add",
|
||||
# "special case the addition of two integers in BINARY_ADD",
|
||||
# default=False),
|
||||
# BoolOption("optimized_comparison_op",
|
||||
# "special case the comparison of integers",
|
||||
# default=False),
|
||||
# BoolOption("optimized_list_getitem",
|
||||
# "special case the 'list[integer]' expressions",
|
||||
# default=False),
|
||||
# BoolOption("builtinshortcut",
|
||||
# "a shortcut for operations between built-in types",
|
||||
# default=False),
|
||||
# BoolOption("getattributeshortcut",
|
||||
# "track types that override __getattribute__",
|
||||
# default=False),
|
||||
# BoolOption("newshortcut",
|
||||
# "cache and shortcut calling __new__ from builtin types",
|
||||
# default=False),
|
||||
|
||||
# BoolOption("logspaceoptypes",
|
||||
# "a instrumentation option: before exit, print the types seen by "
|
||||
# "certain simpler bytecodes",
|
||||
# default=False),
|
||||
# ChoiceOption("multimethods", "the multimethod implementation to use",
|
||||
# ["doubledispatch", "mrd"],
|
||||
# default="mrd"),
|
||||
# BoolOption("immutable_builtintypes",
|
||||
# "Forbid the changing of builtin types", default=True),
|
||||
# ]),
|
||||
#])
|
||||
|
||||
## ____________________________________________________________
|
||||
|
||||
#def get_combined_translation_config(other_optdescr=None,
|
||||
# existing_config=None,
|
||||
# overrides=None,
|
||||
# translating=False):
|
||||
# if overrides is None:
|
||||
# overrides = {}
|
||||
# d = BoolOption("translating",
|
||||
# "indicates whether we are translating currently",
|
||||
# default=False)
|
||||
# if other_optdescr is None:
|
||||
# children = []
|
||||
# newname = ""
|
||||
# else:
|
||||
# children = [other_optdescr]
|
||||
# newname = other_optdescr._name
|
||||
# descr = OptionDescription("eole", "all options", children)
|
||||
# config = Config(descr, **overrides)
|
||||
# if translating:
|
||||
# config.translating = True
|
||||
# if existing_config is not None:
|
||||
# for child in existing_config._cfgimpl_descr._children:
|
||||
# if child._name == newname:
|
||||
# continue
|
||||
# value = getattr(existing_config, child._name)
|
||||
# config._cfgimpl_values[child._name] = value
|
||||
# return config
|
||||
|
||||
#def get_example_config(overrides=None, translating=False):
|
||||
# return get_combined_translation_config(
|
||||
# example__optiondescription, overrides=overrides,
|
||||
# translating=translating)
|
||||
|
||||
## ____________________________________________________________
|
||||
|
||||
#def test_example_option():
|
||||
# config = get_example_config()
|
||||
# result = ['objspace.name', 'objspace.opcodes.CALL_LIKELY_BUILTIN',
|
||||
# 'objspace.opcodes.CALL_METHOD', 'objspace.nofaking',
|
||||
# 'objspace.usemodules.amon', 'objspace.usemodules.sphynx',
|
||||
# 'objspace.usemodules.zephir', 'objspace.allworkingmodules',
|
||||
# 'objspace.translationmodules', 'objspace.geninterp',
|
||||
# 'objspace.logbytecodes', 'objspace.usepycfiles', 'objspace.lonepycfiles',
|
||||
# 'objspace.soabi', 'objspace.honor__builtins__',
|
||||
# 'objspace.disable_call_speedhacks', 'objspace.timing',
|
||||
# 'objspace.std.withtproxy', 'objspace.std.withsmallint',
|
||||
# 'objspace.std.withprebuiltint', 'objspace.std.prebuiltintfrom',
|
||||
# 'objspace.std.prebuiltintto', 'objspace.std.withstrjoin',
|
||||
# 'objspace.std.withstrslice', 'objspace.std.withstrbuf',
|
||||
# 'objspace.std.withprebuiltchar', 'objspace.std.sharesmallstr',
|
||||
# 'objspace.std.withrope', 'objspace.std.withropeunicode',
|
||||
# 'objspace.std.withcelldict', 'objspace.std.withdictmeasurement',
|
||||
# 'objspace.std.withmapdict', 'objspace.std.withrangelist',
|
||||
# 'objspace.std.withtypeversion', 'objspace.std.withmethodcache',
|
||||
# 'objspace.std.withmethodcachecounter', 'objspace.std.methodcachesizeexp',
|
||||
# 'objspace.std.optimized_int_add', 'objspace.std.optimized_comparison_op',
|
||||
# 'objspace.std.optimized_list_getitem', 'objspace.std.builtinshortcut',
|
||||
# 'objspace.std.getattributeshortcut', 'objspace.std.newshortcut',
|
||||
# 'objspace.std.logspaceoptypes', 'objspace.std.multimethods',
|
||||
# 'objspace.std.immutable_builtintypes']
|
||||
|
||||
# assert config.getpaths(allpaths=True) == result
|
|
@ -1,4 +1,6 @@
|
|||
import autopath
|
||||
from autopath import do_autopath
|
||||
do_autopath()
|
||||
|
||||
import warnings
|
||||
from py.test import raises
|
||||
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
import autopath
|
||||
from autopath import do_autopath
|
||||
do_autopath()
|
||||
|
||||
from py.test import raises
|
||||
from tiramisu.config import Config
|
||||
from tiramisu.option import IPOption, NetworkOption, NetmaskOption, \
|
||||
|
@ -27,6 +29,7 @@ def test_ip():
|
|||
c = Config(od)
|
||||
raises(ValueError, "c.a = '192.000.023.01'")
|
||||
|
||||
|
||||
def test_ip_default():
|
||||
a = IPOption('a', '', '88.88.88.88')
|
||||
od = OptionDescription('od', '', [a])
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# coding: utf-8
|
||||
import autopath
|
||||
#from py.test import raises
|
||||
from autopath import do_autopath
|
||||
do_autopath()
|
||||
|
||||
from tiramisu.config import Config, GroupConfig, MetaConfig
|
||||
from tiramisu.option import BoolOption, IntOption, StrOption, OptionDescription, submulti
|
||||
|
@ -9,6 +9,7 @@ import weakref
|
|||
|
||||
IS_DEREFABLE = True
|
||||
|
||||
|
||||
def test_deref_storage():
|
||||
b = BoolOption('b', '')
|
||||
o = OptionDescription('od', '', [b])
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
# coding: utf-8
|
||||
import autopath
|
||||
from autopath import do_autopath
|
||||
do_autopath()
|
||||
|
||||
from tiramisu.setting import groups, owners
|
||||
from tiramisu.option import BoolOption, StrOption, ChoiceOption, IPOption, \
|
||||
|
@ -85,6 +86,7 @@ def test_unknown_dyndescription():
|
|||
od = OptionDescription('od', '', [dod])
|
||||
od2 = OptionDescription('od', '', [od])
|
||||
cfg = Config(od2)
|
||||
cfg
|
||||
raises(AttributeError, "cfg.od.dodval3")
|
||||
raises(AttributeError, "cfg.od.dodval1.novalue")
|
||||
|
||||
|
@ -711,6 +713,7 @@ def test_consistency_external_dyndescription():
|
|||
st2 = StrOption('st2', '')
|
||||
dod = DynOptionDescription('dod', '', [st1, st2], callback=return_list)
|
||||
od = OptionDescription('od', '', [dod, st])
|
||||
od
|
||||
raises(ConfigError, "st.impl_add_consistency('not_equal', st2)")
|
||||
|
||||
|
||||
|
@ -722,6 +725,7 @@ def test_consistency_notsame_dyndescription():
|
|||
tst2 = StrOption('tst2', '')
|
||||
tdod = DynOptionDescription('tdod', '', [tst1, tst2], callback=return_list)
|
||||
od = OptionDescription('od', '', [dod, tdod])
|
||||
od
|
||||
raises(ConfigError, "st1.impl_add_consistency('not_equal', tst1)")
|
||||
|
||||
|
||||
|
@ -1279,30 +1283,35 @@ def test_invalid_conflict_dyndescription():
|
|||
st = StrOption('st', '')
|
||||
dod = DynOptionDescription('dod', '', [st], callback=return_list)
|
||||
dodinvalid = StrOption('dodinvalid', '')
|
||||
dod, dodinvalid
|
||||
raises(ConflictError, "OptionDescription('od', '', [dod, dodinvalid])")
|
||||
|
||||
|
||||
def test_invalid_subod_dyndescription():
|
||||
st2 = StrOption('st2', '')
|
||||
od1 = OptionDescription('od1', '', [st2])
|
||||
od1
|
||||
raises(ConfigError, "DynOptionDescription('dod', '', [od1], callback=return_list)")
|
||||
|
||||
|
||||
def test_invalid_subdynod_dyndescription():
|
||||
st2 = StrOption('st2', '')
|
||||
od1 = DynOptionDescription('od1', '', [st2], callback=return_list)
|
||||
od1
|
||||
raises(ConfigError, "DynOptionDescription('dod', '', [od1], callback=return_list)")
|
||||
|
||||
|
||||
def test_invalid_symlink_dyndescription():
|
||||
st = StrOption('st', '')
|
||||
st2 = SymLinkOption('st2', st)
|
||||
st2
|
||||
raises(ConfigError, "DynOptionDescription('dod', '', [st, st2], callback=return_list)")
|
||||
|
||||
|
||||
def test_nocallback_dyndescription():
|
||||
st = StrOption('st', '')
|
||||
st2 = StrOption('st2', '')
|
||||
st, st2
|
||||
raises(ConfigError, "DynOptionDescription('dod', '', [st, st2])")
|
||||
|
||||
|
||||
|
@ -1311,6 +1320,7 @@ def test_invalid_samevalue_dyndescription():
|
|||
dod = DynOptionDescription('dod', '', [st], callback=return_same_list)
|
||||
od = OptionDescription('od', '', [dod])
|
||||
cfg = Config(od)
|
||||
cfg
|
||||
raises(ConfigError, "print cfg")
|
||||
|
||||
|
||||
|
@ -1319,4 +1329,5 @@ def test_invalid_name_dyndescription():
|
|||
dod = DynOptionDescription('dod', '', [st], callback=return_wrong_list)
|
||||
od = OptionDescription('od', '', [dod])
|
||||
cfg = Config(od)
|
||||
cfg
|
||||
raises(ValueError, "print cfg")
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
# coding: utf-8
|
||||
"frozen and hidden values"
|
||||
import autopath
|
||||
from autopath import do_autopath
|
||||
do_autopath()
|
||||
|
||||
from tiramisu.setting import owners
|
||||
from tiramisu.option import ChoiceOption, BoolOption, IntOption, FloatOption, \
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
import autopath
|
||||
from autopath import do_autopath
|
||||
do_autopath()
|
||||
|
||||
from time import sleep
|
||||
|
||||
#from py.test import raises
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import autopath
|
||||
from autopath import do_autopath
|
||||
do_autopath()
|
||||
|
||||
from py.test import raises
|
||||
|
||||
|
@ -177,6 +178,7 @@ def test_not_meta():
|
|||
conf2 = Config(od2, name='conf2')
|
||||
conf3 = Config(od2)
|
||||
conf4 = Config(od2, name='conf2')
|
||||
conf3, conf4
|
||||
raises(ValueError, "GroupConfig(conf1)")
|
||||
#same name
|
||||
raises(ConflictError, "GroupConfig([conf2, conf4])")
|
||||
|
@ -215,6 +217,7 @@ def test_meta_unconsistent():
|
|||
conf2 = Config(od2, name='conf2')
|
||||
conf3 = Config(od2, name='conf3')
|
||||
conf4 = Config(od1, name='conf4')
|
||||
conf3, conf4
|
||||
meta = MetaConfig([conf1, conf2])
|
||||
meta.cfgimpl_get_settings().setowner(owners.meta)
|
||||
raises(TypeError, 'MetaConfig("string")')
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
# coding: utf-8
|
||||
import autopath
|
||||
from autopath import do_autopath
|
||||
do_autopath()
|
||||
|
||||
from tiramisu.value import Multi
|
||||
from tiramisu.option import IntOption, OptionDescription
|
||||
from tiramisu.config import Config
|
||||
|
@ -13,7 +15,7 @@ def test_multi():
|
|||
i = IntOption('int', '', multi=True)
|
||||
o = OptionDescription('od', '', [i])
|
||||
c = Config(o)
|
||||
multi = Multi([1,2,3], weakref.ref(c), i, 'int')
|
||||
multi = Multi([1, 2, 3], weakref.ref(c), i, 'int')
|
||||
raises(ValueError, "Multi([1,2,3], c, i, 'int')")
|
||||
raises(ValueError, "Multi(multi, weakref.ref(c), i, 'int')")
|
||||
assert c is multi._getcontext()
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
"""these tests are here to create some :class:`tiramisu.option.Option`'s
|
||||
and to compare them
|
||||
"""
|
||||
import autopath
|
||||
from autopath import do_autopath
|
||||
do_autopath()
|
||||
|
||||
from py.test import raises
|
||||
|
||||
from tiramisu.option import IntOption, OptionDescription
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
import autopath
|
||||
from autopath import do_autopath
|
||||
do_autopath()
|
||||
|
||||
from py.test import raises
|
||||
|
||||
from tiramisu.config import Config
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
import autopath
|
||||
from autopath import do_autopath
|
||||
do_autopath()
|
||||
|
||||
from py.test import raises
|
||||
|
||||
from tiramisu.setting import owners, groups
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
"test all types of option default values for options, add new option in a descr"
|
||||
import autopath
|
||||
from autopath import do_autopath
|
||||
do_autopath()
|
||||
|
||||
from py.test import raises
|
||||
|
||||
from tiramisu.config import Config
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
import autopath
|
||||
from autopath import do_autopath
|
||||
do_autopath()
|
||||
|
||||
from py.test import raises
|
||||
|
||||
from tiramisu.setting import owners
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
"config.set() or config.setoption() or option.setoption()"
|
||||
import autopath
|
||||
from autopath import do_autopath
|
||||
do_autopath()
|
||||
|
||||
from py.test import raises
|
||||
|
||||
from tiramisu.setting import owners
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
# coding: utf-8
|
||||
"frozen and hidden values"
|
||||
import autopath
|
||||
from autopath import do_autopath
|
||||
do_autopath()
|
||||
|
||||
from py.test import raises
|
||||
|
||||
from tiramisu.config import Config
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
"configuration objects global API"
|
||||
import autopath
|
||||
from autopath import do_autopath
|
||||
do_autopath()
|
||||
|
||||
from py.test import raises
|
||||
|
||||
from tiramisu.config import Config
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
import autopath
|
||||
from autopath import do_autopath
|
||||
do_autopath()
|
||||
|
||||
import warnings
|
||||
from py.test import raises
|
||||
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
#this test is much more to test that **it's there** and answers attribute access
|
||||
import autopath
|
||||
from autopath import do_autopath
|
||||
do_autopath()
|
||||
|
||||
from py.test import raises
|
||||
|
||||
from tiramisu.config import Config
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
# coding: utf-8
|
||||
import autopath
|
||||
from autopath import do_autopath
|
||||
do_autopath()
|
||||
|
||||
from tiramisu.setting import groups, owners
|
||||
from tiramisu.config import Config
|
||||
from tiramisu.option import ChoiceOption, BoolOption, IntOption, \
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
# coding: utf-8
|
||||
import autopath
|
||||
from autopath import do_autopath
|
||||
do_autopath()
|
||||
|
||||
from py.test import raises
|
||||
|
||||
from tiramisu.option import IntOption, OptionDescription
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
# coding: utf-8
|
||||
import autopath
|
||||
from autopath import do_autopath
|
||||
do_autopath()
|
||||
|
||||
from copy import copy
|
||||
from tiramisu import setting
|
||||
setting.expires_time = 1
|
||||
|
|
|
@ -1,42 +0,0 @@
|
|||
#import autopath
|
||||
#from py.test import raises
|
||||
|
||||
#from tool import reverse_from_paths
|
||||
|
||||
#def make_description():
|
||||
# gcoption = ChoiceOption('name', 'GC name', ['ref', 'framework'], 'ref')
|
||||
# gcdummy = BoolOption('dummy', 'dummy', default=False)
|
||||
# objspaceoption = ChoiceOption('objspace', 'Object space',
|
||||
# ['std', 'thunk'], 'std')
|
||||
# booloption = BoolOption('bool', 'Test boolean option', default=True)
|
||||
# intoption = IntOption('int', 'Test int option', default=0)
|
||||
# floatoption = FloatOption('float', 'Test float option', default=2.3)
|
||||
# stroption = StrOption('str', 'Test string option', default="abc")
|
||||
# boolop = BoolOption('boolop', 'Test boolean option op', default=True)
|
||||
# wantref_option = BoolOption('wantref', 'Test requires', default=False)
|
||||
# wantframework_option = BoolOption('wantframework', 'Test requires',
|
||||
# default=False)
|
||||
#
|
||||
# gcgroup = OptionDescription('gc', '', [gcoption, gcdummy, floatoption])
|
||||
# descr = OptionDescription('tiram', '', [gcgroup, booloption, objspaceoption,
|
||||
# wantref_option, stroption,
|
||||
# wantframework_option,
|
||||
# intoption, boolop])
|
||||
# return descr
|
||||
|
||||
#def test_rebuild():
|
||||
# # pouvoir faire une comparaison avec equal
|
||||
# d = {"s1.s2.s3.s4.a": True, "int": 43, "s2.b":True, "s3.c": True, "s3.d":[1,2,3]}
|
||||
# cfg = reverse_from_paths(d)
|
||||
# assert cfg.s1.s2.s3.s4.a == True
|
||||
# assert cfg.int == 43
|
||||
# assert cfg.s2.b == True
|
||||
# assert cfg.s3.c == True
|
||||
# assert cfg.s3.d == [1,2,3]
|
||||
|
||||
# assert config.getpaths() == ['gc.name', 'gc.dummy', 'gc.float', 'bool',
|
||||
# 'objspace', 'wantref', 'str', 'wantframework',
|
||||
# 'int', 'boolop']
|
||||
|
||||
# assert config.getpaths(include_groups=False) == ['gc.name', 'gc.dummy', 'gc.float', 'bool', 'objspace', 'wantref', 'str', 'wantframework', 'int', 'boolop']
|
||||
# assert config.getpaths(include_groups=True) == ['gc', 'gc.name', 'gc.dummy', 'gc.float', 'bool', 'objspace', 'wantref', 'str', 'wantframework', 'int', 'boolop']
|
|
@ -1,5 +1,7 @@
|
|||
## coding: utf-8
|
||||
import autopath
|
||||
from autopath import do_autopath
|
||||
do_autopath()
|
||||
|
||||
from py.test import raises
|
||||
|
||||
from tiramisu.config import Config, SubConfig
|
||||
|
@ -110,6 +112,7 @@ def test_slots_option_readonly_name():
|
|||
p = DomainnameOption('p', '')
|
||||
q = DomainnameOption('q', '')
|
||||
m = OptionDescription('m', '', [a, b, c, d, e, f, g, h, i, j, k, l, o, p, q])
|
||||
m
|
||||
raises(AttributeError, "a._name = 'a'")
|
||||
raises(AttributeError, "b._name = 'b'")
|
||||
raises(AttributeError, "c._name = 'c'")
|
||||
|
@ -154,6 +157,7 @@ def test_slots_setting():
|
|||
od2 = OptionDescription('a', '', [od1])
|
||||
c = Config(od2)
|
||||
s = c.cfgimpl_get_settings()
|
||||
s
|
||||
raises(AttributeError, "s.x = 1")
|
||||
|
||||
|
||||
|
@ -162,4 +166,5 @@ def test_slots_value():
|
|||
od2 = OptionDescription('a', '', [od1])
|
||||
c = Config(od2)
|
||||
v = c.cfgimpl_get_values()
|
||||
v
|
||||
raises(AttributeError, "v.x = 1")
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import autopath
|
||||
from autopath import do_autopath
|
||||
do_autopath()
|
||||
|
||||
from tiramisu.option import BoolOption, UnicodeOption, SymLinkOption, \
|
||||
IntOption, IPOption, NetmaskOption, StrOption, OptionDescription, \
|
||||
|
@ -53,7 +54,7 @@ def _diff_opt(opt1, opt2):
|
|||
try:
|
||||
val1 = getattr(opt1, attr)
|
||||
msg1 = "exists"
|
||||
except Exception, err:
|
||||
except:
|
||||
err1 = True
|
||||
msg1 = "not exists"
|
||||
|
||||
|
@ -189,6 +190,7 @@ def test_diff_opt():
|
|||
|
||||
def test_only_optiondescription():
|
||||
b = BoolOption('b', '')
|
||||
b
|
||||
raises(SystemError, "a = dumps(b)")
|
||||
|
||||
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
# coding: utf-8
|
||||
import autopath
|
||||
from autopath import do_autopath
|
||||
do_autopath()
|
||||
|
||||
#from py.test import raises
|
||||
|
||||
from tiramisu.config import Config
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
# coding: utf-8
|
||||
import autopath
|
||||
from autopath import do_autopath
|
||||
do_autopath()
|
||||
|
||||
from tiramisu.setting import groups, owners
|
||||
from tiramisu.config import Config
|
||||
from tiramisu.option import StrOption, OptionDescription, submulti
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
# coding: utf-8
|
||||
import autopath
|
||||
from autopath import do_autopath
|
||||
do_autopath()
|
||||
|
||||
from tiramisu.option import BoolOption, StrOption, SymLinkOption, \
|
||||
OptionDescription
|
||||
|
@ -109,6 +110,7 @@ def test_symlink_master():
|
|||
ip_admin_eth0 = SymLinkOption('ip_admin_eth0', a)
|
||||
netmask_admin_eth0 = StrOption('netmask_admin_eth0', "", multi=True)
|
||||
interface1 = OptionDescription('ip_admin_eth0', '', [ip_admin_eth0, netmask_admin_eth0])
|
||||
interface1
|
||||
raises(ValueError, 'interface1.impl_set_group_type(groups.master)')
|
||||
|
||||
|
||||
|
@ -117,4 +119,5 @@ def test_symlink_slaves():
|
|||
ip_admin_eth0 = StrOption('ip_admin_eth0', "ip réseau autorisé", multi=True)
|
||||
netmask_admin_eth0 = SymLinkOption('netmask_admin_eth0', a)
|
||||
interface1 = OptionDescription('ip_admin_eth0', '', [ip_admin_eth0, netmask_admin_eth0])
|
||||
interface1
|
||||
raises(ValueError, 'interface1.impl_set_group_type(groups.master)')
|
||||
|
|
|
@ -20,7 +20,6 @@
|
|||
# ____________________________________________________________
|
||||
"options handler global entry point"
|
||||
import weakref
|
||||
from copy import copy
|
||||
|
||||
|
||||
from tiramisu.error import PropertiesOptionError, ConfigError, ConflictError
|
||||
|
@ -603,9 +602,16 @@ class _CommonConfig(SubConfig):
|
|||
fake_config = Config(self._impl_descr, persistent=False,
|
||||
force_storages=get_storages_validation(),
|
||||
force_settings=self.cfgimpl_get_settings())
|
||||
fake_config.cfgimpl_get_values()._p_._values = copy(self.cfgimpl_get_values()._p_.get_modified_values())
|
||||
fake_config.cfgimpl_get_values()._p_._values = self.cfgimpl_get_values()._p_.get_modified_values()
|
||||
return fake_config
|
||||
|
||||
def duplicate(self):
|
||||
config = Config(self._impl_descr)
|
||||
config.cfgimpl_get_values()._p_._values = self.cfgimpl_get_values()._p_.get_modified_values()
|
||||
config.cfgimpl_get_settings()._p_._properties = self.cfgimpl_get_settings()._p_.get_modified_properties()
|
||||
config.cfgimpl_get_settings()._p_._permissives = self.cfgimpl_get_settings()._p_.get_modified_permissives()
|
||||
return config
|
||||
|
||||
|
||||
# ____________________________________________________________
|
||||
class Config(_CommonConfig):
|
||||
|
|
|
@ -302,6 +302,10 @@ class OptionDescription(BaseOption, StorageOptionDescription):
|
|||
def __getattr__(self, name, context=undefined):
|
||||
if name.startswith('_'): # or name.startswith('impl_'):
|
||||
return object.__getattribute__(self, name)
|
||||
if '.' in name:
|
||||
path = name.split('.')[0]
|
||||
subpath = '.'.join(name.split('.')[1:])
|
||||
return self.__getattr__(path, context=context).__getattr__(subpath, context=context)
|
||||
return self._getattr(name, context=context)
|
||||
|
||||
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# ____________________________________________________________
|
||||
from copy import copy
|
||||
from ..util import Cache
|
||||
|
||||
|
||||
|
@ -58,10 +59,10 @@ class Settings(Cache):
|
|||
"""return all modified settings in a dictionary
|
||||
example: {'path1': set(['prop1', 'prop2'])}
|
||||
"""
|
||||
return self._properties
|
||||
return copy(self._properties)
|
||||
|
||||
def get_modified_permissives(self):
|
||||
"""return all modified permissives in a dictionary
|
||||
example: {'path1': set(['perm1', 'perm2'])}
|
||||
"""
|
||||
return self._permissives
|
||||
return copy(self._permissives)
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# ____________________________________________________________
|
||||
|
||||
from copy import copy
|
||||
from ..util import Cache
|
||||
|
||||
|
||||
|
@ -58,7 +58,7 @@ class Values(Cache):
|
|||
"""return all values in a dictionary
|
||||
example: {'path1': (owner, 'value1'), 'path2': (owner, 'value2')}
|
||||
"""
|
||||
return self._values
|
||||
return copy(self._values)
|
||||
|
||||
# owner
|
||||
def setowner(self, path, owner):
|
||||
|
|
Loading…
Reference in a new issue