refactor validation

This commit is contained in:
2015-04-18 22:53:45 +02:00
parent c566ad1111
commit 10768a6067
14 changed files with 336 additions and 237 deletions

View File

@ -27,6 +27,7 @@ configurator ``set_storage()``.
from time import time
from random import randint
import os
from tiramisu.error import ConfigError
from tiramisu.i18n import _
@ -66,6 +67,8 @@ class StorageType(object):
storage_type = StorageType()
storage_option_type = StorageType()
storage_validation = StorageType()
storage_validation.set('dictionary')
def set_storage(type_, name, **kwargs): # pragma: optional cover
@ -105,13 +108,15 @@ def get_storage(type_, session_id, persistent, test): # pragma: optional cover
"""
if type_ == 'option':
return storage_option_type.get().Storage(session_id, persistent, test)
else:
elif type_ == 'config':
return storage_type.get().Storage(session_id, persistent, test)
else:
return storage_validation.get().Storage(session_id, persistent, test)
def get_storages(context, session_id, persistent):
def gen_id(config):
return str(id(config)) + str(time())
return str(id(config)) + str(time()) + str(randint(0, 500))
if session_id is None:
session_id = gen_id(context)
@ -119,10 +124,8 @@ def get_storages(context, session_id, persistent):
storage = imp.Storage(session_id, persistent)
try:
return imp.Settings(storage), imp.Values(storage)
except:
import traceback
traceback.print_exc()
raise Exception('rah')
except Exception, err:
raise Exception(_('unable to get storages:') + str(err))
def get_storages_option(type_):
@ -133,6 +136,12 @@ def get_storages_option(type_):
return imp.StorageOptionDescription
def get_storages_validation():
imp = storage_validation.get()
storage = imp.Storage('pouet', persistent=False, test=True)
return imp.Settings(storage), imp.Values(storage)
def list_sessions(type_): # pragma: optional cover
"""List all available session (persistent or not persistent)
"""

View File

@ -83,9 +83,6 @@ class StorageBase(object):
self._opt = opt
def _set_default_values(self, default, default_multi):
if self.impl_is_multi() and default is None:
default = []
self.impl_validate(default)
if ((self.impl_is_multi() and default != tuple()) or
(not self.impl_is_multi() and default is not None)):
if self.impl_is_multi():

View File

@ -322,9 +322,6 @@ class _Base(SqlAlchemyBase):
_Consistency(func, all_cons_opts, params)
def _set_default_values(self, default, default_multi):
if self.impl_is_multi() and default is None:
default = []
self.impl_validate(default)
self._default = default
if self.impl_is_multi() and default_multi is not None:
self._validate(default_multi)