tests/model_validate.py
author Sandro Knauß <knauss@netzguerilla.net>
Sun, 11 Mar 2012 16:37:49 +0100
branchdevel
changeset 224 072de50834f9
parent 212 39e4c09e1b60
permissions -rw-r--r--
adding init function that only loads main options

from iro.model.schema import Offer
from iro.model.decorators import vRoute, vTyp
from iro.model.pool import data

from iro.error import ValidateException

from .dbtestcase import DBTestCase

class DummyPool():
    def run(self, f,*a,**k):
        return f(*a,**k)

class ModelVaidatorTest(DBTestCase):
    """tests for the model vaidators"""
    def setUp(self):
        DBTestCase.setUp(self)
        self.pool = data.pool
        data.pool = DummyPool()

    def tearDown(self):
        data.pool = self.pool
        self.pool = None
        DBTestCase.tearDown(self)

    def testTyp(self):
        with self.session() as session:
            session.add(Offer(name="t",provider="p",typ="type"))

        with self.session() as session:
            self.assertEqual(vTyp("type",None),"type")
            e = self.assertRaises(ValidateException,vTyp, "sss", None)
            self.assertEqual(str(e),'700:Typ sss is not valid.')

    def testRoute(self):
        with self.session() as session:
            session.add(Offer(name="t",provider="p",typ="type"))
        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"))
        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,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")