--- a/iro/model/decorators.py Fri Mar 02 13:59:56 2012 +0100
+++ b/iro/model/decorators.py Fri Mar 02 14:00:23 2012 +0100
@@ -21,9 +21,10 @@
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)]
+ routes = [o.name for o in Offer.routes(session,typ)]
+ providers = [o.provider for o in Offer.providers(session,typ)]
for v in value:
- if v not in routes:
+ if v not in routes and v not in providers and v != "default":
raise ValidateException(field=field,msg='Route %s is not valid.'%v)
if v not in ret:
ret.append(v)
--- a/tests/model_validate.py Fri Mar 02 13:59:56 2012 +0100
+++ b/tests/model_validate.py Fri Mar 02 14:00:23 2012 +0100
@@ -47,3 +47,11 @@
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.')
+ def testRouteProvider(self):
+ with self.session() as session:
+ session.add(Offer(name="t",provider="p",typ="type"))
+ self.assertEqual(vRoute("p",None,typ="type"),"p")
+
+ def testRouteDefault(self):
+ self.assertEqual(vRoute("default",None,typ="type"),"default")
+