--- a/iro/controller/viewinterface.py Fri Mar 02 03:25:21 2012 +0100
+++ b/iro/controller/viewinterface.py Fri Mar 02 13:46:13 2012 +0100
@@ -41,7 +41,7 @@
@validate(kwd="recipients",func=vTel)
@vUser
- @validate(kwd="route",func=vRoute(typ="sms"))
+ @validate(kwd="route", func=vRoute, typ="sms")
def sms(self, user, message, recipients, route="default", info=""):
'''Versendet eine SMS.
@@ -64,7 +64,7 @@
@validate(kwd="recipients",func=vTel)
@vUser
- @validate(kwd="route",func=vRoute(typ="fax"))
+ @validate(kwd="route",func=vRoute, typ="fax")
def fax(self, user, subject, fax, recipients, route="default", info=""):
'''Versendet ein FAX.
@@ -89,7 +89,7 @@
@validate(kwd="recipients",func=vEmail, allowString=False)
@validate(kwd="frm",func=vEmail, need=False, allowList=False)
@vUser
- @validate(kwd="route",func=vRoute(typ="mail"))
+ @validate(kwd="route",func=vRoute, typ="mail")
def mail(self, user, subject, body, recipients, frm=None, route="default", info=""):
'''Versendet eine Email.
--- a/iro/model/decorators.py Fri Mar 02 03:25:21 2012 +0100
+++ b/iro/model/decorators.py Fri Mar 02 13:46:13 2012 +0100
@@ -8,30 +8,28 @@
from ..error import ValidateException
-def vRoute(typ):
- @dbdefer
- def wrapper(session, value, field, allowString=True, allowList=True):
- str_ = False
- ret = []
+@dbdefer
+def vRoute(session, value, field, typ, allowString=True, allowList=True):
+ str_ = False
+ ret = []
- if type(value) is types.StringType:
- if not allowString:
- raise ValidateException(field=field,msg='%s must be a list of routes.'%field)
- str_=True
- value=[value]
- elif not allowList:
- raise ValidateException(field=field,msg='%s must be a route - No list of routes.'%field)
+ if type(value) is types.StringType:
+ if not allowString:
+ raise ValidateException(field=field,msg='%s must be a list of routes.'%field)
+ str_=True
+ value=[value]
+ elif not allowList:
+ raise ValidateException(field=field,msg='%s must be a route - No list of routes.'%field)
- routes =[o.name for o in Offer.routes(session,typ)]
- for v in value:
- if v not in routes:
- raise ValidateException(field=field,msg='Route %s is not valid.'%v)
- if v not in ret:
- ret.append(v)
- if str_:
- return ret[0]
- return ret
- return wrapper
+ routes =[o.name for o in Offer.routes(session,typ)]
+ for v in value:
+ if v not in routes:
+ raise ValidateException(field=field,msg='Route %s is not valid.'%v)
+ if v not in ret:
+ ret.append(v)
+ if str_:
+ return ret[0]
+ return ret
@dbdefer
def vTyp(value,field, session):
--- a/tests/model_validate.py Fri Mar 02 03:25:21 2012 +0100
+++ b/tests/model_validate.py Fri Mar 02 13:46:13 2012 +0100
@@ -34,18 +34,16 @@
def testRoute(self):
with self.session() as session:
session.add(Offer(name="t",provider="p",typ="type"))
- vR = vRoute('type')
- self.assertEqual(vR("t",None),"t")
- self.assertEqual(vR(["t","t"],None),["t"])
- e = self.assertRaises(ValidateException,vR, "s", None)
+ self.assertEqual(vRoute("t",None,typ="type"),"t")
+ self.assertEqual(vRoute(["t","t"],None,typ="type"),["t"])
+ e = self.assertRaises(ValidateException,vRoute, "s", None, typ="type")
self.assertEqual(str(e),'700:Route s is not valid.')
def testRouteAllow(self):
with self.session() as session:
session.add(Offer(name="t",provider="p",typ="type"))
- vR = vRoute('type')
- e = self.assertRaises(ValidateException,vR, "t", "foo", allowString=False)
+ e = self.assertRaises(ValidateException,vRoute, "t", "foo", typ="type", allowString=False)
self.assertEqual(str(e),'700:foo must be a list of routes.')
- e = self.assertRaises(ValidateException,vR, ["t"], "foo", allowList=False)
+ e = self.assertRaises(ValidateException,vRoute, ["t"], "foo", typ="type", allowList=False)
self.assertEqual(str(e),'700:foo must be a route - No list of routes.')