tests/model_validate.py
author Sandro Knauß <knauss@netzguerilla.net>
Fri, 02 Mar 2012 14:00:23 +0100
branchdevel
changeset 212 39e4c09e1b60
parent 210 3763babd5e10
permissions -rw-r--r--
adding tests for vRoute with default and provider names

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")