iro/tests/model_validate.py
author Sandro Knauß <knauss@netzguerilla.net>
Fri, 24 Aug 2012 01:05:06 +0200
branchdevel
changeset 294 0e75bd39767d
parent 241 546316b0b09c
permissions -rw-r--r--
adding LICENSE to all files
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
294
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
     1
# Copyright (c) 2012 netzguerilla.net <iro@netzguerilla.net>
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
     2
# 
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
     3
# This file is part of Iro.
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
     4
# 
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
     5
# Permission is hereby granted, free of charge, to any person obtaining a copy of
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
     6
# this software and associated documentation files (the "Software"), to deal in
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
     7
# the Software without restriction, including without limitation the rights to use,
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
     8
# copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
     9
# #Software, and to permit persons to whom the Software is furnished to do so,
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
    10
# subject to the following conditions:
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
    11
# 
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
    12
# The above copyright notice and this permission notice shall be included in
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
    13
# all copies or substantial portions of the Software.
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
    14
# 
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
    15
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
    16
# INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
    17
# PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
    18
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
    19
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
    20
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
    21
207
90a81145852c tests for vRoute
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    22
from iro.model.schema import Offer
209
7a0f8fbdf7b8 adding tests for vTyp
Sandro Knauß <knauss@netzguerilla.net>
parents: 207
diff changeset
    23
from iro.model.decorators import vRoute, vTyp
207
90a81145852c tests for vRoute
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    24
from iro.model.pool import data
90a81145852c tests for vRoute
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    25
90a81145852c tests for vRoute
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    26
from iro.error import ValidateException
90a81145852c tests for vRoute
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    27
231
3929338fd17f moving tests -> iro.tests
Sandro Knauß <knauss@netzguerilla.net>
parents: 212
diff changeset
    28
from ..test_helpers.dbtestcase import DBTestCase
241
546316b0b09c moving DummyObserver and DummyPool -> iro.test_helpers.utils
Sandro Knauß <knauss@netzguerilla.net>
parents: 231
diff changeset
    29
from ..test_helpers.utils import DummyPool
207
90a81145852c tests for vRoute
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    30
90a81145852c tests for vRoute
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    31
class ModelVaidatorTest(DBTestCase):
90a81145852c tests for vRoute
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    32
    """tests for the model vaidators"""
90a81145852c tests for vRoute
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    33
    def setUp(self):
90a81145852c tests for vRoute
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    34
        DBTestCase.setUp(self)
90a81145852c tests for vRoute
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    35
        self.pool = data.pool
90a81145852c tests for vRoute
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    36
        data.pool = DummyPool()
90a81145852c tests for vRoute
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    37
90a81145852c tests for vRoute
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    38
    def tearDown(self):
90a81145852c tests for vRoute
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    39
        data.pool = self.pool
90a81145852c tests for vRoute
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    40
        self.pool = None
90a81145852c tests for vRoute
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    41
        DBTestCase.tearDown(self)
90a81145852c tests for vRoute
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    42
90a81145852c tests for vRoute
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    43
    def testTyp(self):
209
7a0f8fbdf7b8 adding tests for vTyp
Sandro Knauß <knauss@netzguerilla.net>
parents: 207
diff changeset
    44
        with self.session() as session:
7a0f8fbdf7b8 adding tests for vTyp
Sandro Knauß <knauss@netzguerilla.net>
parents: 207
diff changeset
    45
            session.add(Offer(name="t",provider="p",typ="type"))
7a0f8fbdf7b8 adding tests for vTyp
Sandro Knauß <knauss@netzguerilla.net>
parents: 207
diff changeset
    46
7a0f8fbdf7b8 adding tests for vTyp
Sandro Knauß <knauss@netzguerilla.net>
parents: 207
diff changeset
    47
        with self.session() as session:
7a0f8fbdf7b8 adding tests for vTyp
Sandro Knauß <knauss@netzguerilla.net>
parents: 207
diff changeset
    48
            self.assertEqual(vTyp("type",None),"type")
7a0f8fbdf7b8 adding tests for vTyp
Sandro Knauß <knauss@netzguerilla.net>
parents: 207
diff changeset
    49
            e = self.assertRaises(ValidateException,vTyp, "sss", None)
231
3929338fd17f moving tests -> iro.tests
Sandro Knauß <knauss@netzguerilla.net>
parents: 212
diff changeset
    50
            self.assertEqual(str(e),'700: Typ sss is not valid.')
207
90a81145852c tests for vRoute
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    51
90a81145852c tests for vRoute
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    52
    def testRoute(self):
90a81145852c tests for vRoute
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    53
        with self.session() as session:
90a81145852c tests for vRoute
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    54
            session.add(Offer(name="t",provider="p",typ="type"))
210
3763babd5e10 refactoring vRoute
Sandro Knauß <knauss@netzguerilla.net>
parents: 209
diff changeset
    55
        self.assertEqual(vRoute("t",None,typ="type"),"t")
3763babd5e10 refactoring vRoute
Sandro Knauß <knauss@netzguerilla.net>
parents: 209
diff changeset
    56
        self.assertEqual(vRoute(["t","t"],None,typ="type"),["t"])
3763babd5e10 refactoring vRoute
Sandro Knauß <knauss@netzguerilla.net>
parents: 209
diff changeset
    57
        e = self.assertRaises(ValidateException,vRoute, "s", None, typ="type")
231
3929338fd17f moving tests -> iro.tests
Sandro Knauß <knauss@netzguerilla.net>
parents: 212
diff changeset
    58
        self.assertEqual(str(e),'700: Route s is not valid.')
207
90a81145852c tests for vRoute
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    59
90a81145852c tests for vRoute
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    60
    def testRouteAllow(self):
90a81145852c tests for vRoute
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    61
        with self.session() as session:
90a81145852c tests for vRoute
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    62
            session.add(Offer(name="t",provider="p",typ="type"))
210
3763babd5e10 refactoring vRoute
Sandro Knauß <knauss@netzguerilla.net>
parents: 209
diff changeset
    63
        e = self.assertRaises(ValidateException,vRoute, "t", "foo", typ="type", allowString=False)
231
3929338fd17f moving tests -> iro.tests
Sandro Knauß <knauss@netzguerilla.net>
parents: 212
diff changeset
    64
        self.assertEqual(str(e),'700: foo must be a list of routes.')
210
3763babd5e10 refactoring vRoute
Sandro Knauß <knauss@netzguerilla.net>
parents: 209
diff changeset
    65
        e = self.assertRaises(ValidateException,vRoute, ["t"], "foo", typ="type", allowList=False)
231
3929338fd17f moving tests -> iro.tests
Sandro Knauß <knauss@netzguerilla.net>
parents: 212
diff changeset
    66
        self.assertEqual(str(e),'700: foo must be a route - No list of routes.')
207
90a81145852c tests for vRoute
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    67
212
39e4c09e1b60 adding tests for vRoute with default and provider names
Sandro Knauß <knauss@netzguerilla.net>
parents: 210
diff changeset
    68
    def testRouteProvider(self):
39e4c09e1b60 adding tests for vRoute with default and provider names
Sandro Knauß <knauss@netzguerilla.net>
parents: 210
diff changeset
    69
        with self.session() as session:
39e4c09e1b60 adding tests for vRoute with default and provider names
Sandro Knauß <knauss@netzguerilla.net>
parents: 210
diff changeset
    70
            session.add(Offer(name="t",provider="p",typ="type"))
39e4c09e1b60 adding tests for vRoute with default and provider names
Sandro Knauß <knauss@netzguerilla.net>
parents: 210
diff changeset
    71
        self.assertEqual(vRoute("p",None,typ="type"),"p")
39e4c09e1b60 adding tests for vRoute with default and provider names
Sandro Knauß <knauss@netzguerilla.net>
parents: 210
diff changeset
    72
39e4c09e1b60 adding tests for vRoute with default and provider names
Sandro Knauß <knauss@netzguerilla.net>
parents: 210
diff changeset
    73
    def testRouteDefault(self):
39e4c09e1b60 adding tests for vRoute with default and provider names
Sandro Knauß <knauss@netzguerilla.net>
parents: 210
diff changeset
    74
        self.assertEqual(vRoute("default",None,typ="type"),"default")
39e4c09e1b60 adding tests for vRoute with default and provider names
Sandro Knauß <knauss@netzguerilla.net>
parents: 210
diff changeset
    75