# HG changeset patch # User Sandro Knauß # Date 1330692373 -3600 # Node ID 3763babd5e10f47a7cca7283ebb2b9777c9b6941 # Parent 7a0f8fbdf7b8c07c9bdfa610ae67ff6876a0328c refactoring vRoute diff -r 7a0f8fbdf7b8 -r 3763babd5e10 iro/controller/viewinterface.py --- 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. diff -r 7a0f8fbdf7b8 -r 3763babd5e10 iro/model/decorators.py --- 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): diff -r 7a0f8fbdf7b8 -r 3763babd5e10 tests/model_validate.py --- 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.')