iro/tests/install.py
author Sandro Knauß <knauss@netzguerilla.net>
Fri, 23 Mar 2012 16:18:12 +0100
branchdevel
changeset 242 745d829d1e02
parent 241 546316b0b09c
child 294 0e75bd39767d
permissions -rw-r--r--
tests for iro.install.getAllRoutes added
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
221
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     1
#from mock import patch, Mock
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     2
from twisted.trial import unittest
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     3
from sqlalchemy import create_engine
242
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
     4
from sets import Set
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
     5
import io
221
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     6
import os
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     7
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     8
from iro import install
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     9
from iro import config
241
546316b0b09c moving DummyObserver and DummyPool -> iro.test_helpers.utils
Sandro Knauß <knauss@netzguerilla.net>
parents: 231
diff changeset
    10
from iro.model.schema import Base, Offer
546316b0b09c moving DummyObserver and DummyPool -> iro.test_helpers.utils
Sandro Knauß <knauss@netzguerilla.net>
parents: 231
diff changeset
    11
from iro.model.utils import WithSession
546316b0b09c moving DummyObserver and DummyPool -> iro.test_helpers.utils
Sandro Knauß <knauss@netzguerilla.net>
parents: 231
diff changeset
    12
from iro.offer.provider import providers, Provider
231
3929338fd17f moving tests -> iro.tests
Sandro Knauß <knauss@netzguerilla.net>
parents: 221
diff changeset
    13
from ..test_helpers.dbtestcase import md, SampleDatabase
241
546316b0b09c moving DummyObserver and DummyPool -> iro.test_helpers.utils
Sandro Knauß <knauss@netzguerilla.net>
parents: 231
diff changeset
    14
from ..test_helpers.utils import DummyObserver
221
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    15
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    16
class TestInstallation(unittest.TestCase):
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    17
    '''test install script'''
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    18
   
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    19
    def setUp(self):
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    20
        md.setUp()
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    21
        if not hasattr(md,"db2"):
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    22
            md.db2=SampleDatabase("test2","test2",'%s/my.cnf'%md.tdir)
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    23
            md.dburl2='mysql://test2:test@localhost/test2?unix_socket=%s/socket'%md.tdir
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    24
            md.db2.create()
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    25
        self.log = DummyObserver()
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    26
        self.log.start()
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    27
        self.engine = None
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    28
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    29
    def tearDown(self):
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    30
        self.log.stop()
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    31
        if self.engine:
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    32
            Base.metadata.drop_all(self.engine)
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    33
            self.engine = None
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    34
        try:
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    35
            os.remove("iro.conf")
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    36
        except OSError as e:
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    37
            if e.errno != 2:
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    38
                raise
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    39
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    40
        
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    41
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    42
    def testCheckConfig(self):
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    43
        self.assertEqual(install.checkConfig(),False)
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    44
        with open("iro.conf",'w') as fp:
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    45
            fp.write("""[main]
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    46
dburl=foo""")
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    47
        self.assertEqual(install.checkConfig(),False)
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    48
        self.assertEqual(len(self.log.e),1)
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    49
        self.assertEqual(self.log.e[0]['message'], ("Error while processing config file: Option 'port' in section 'main' is missing.",))
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    50
        with open("iro.conf",'w') as fp:
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    51
            fp.write("""[main]
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    52
dburl=foo
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    53
port=123456
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    54
""")
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    55
        self.assertEqual(install.checkConfig(),True)
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    56
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    57
    def testCheckDatabase(self):
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    58
        config.main.dburl=md.dburl2
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    59
        self.assertTrue(install.checkDatabaseConnection())
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    60
        self.assertFalse(install.checkDatabase())
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    61
        self.engine = create_engine(md.dburl2)
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    62
        Base.metadata.create_all(self.engine)
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    63
        self.assertTrue(install.checkDatabase())
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    64
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    65
    def testCheckDatabaseConnection(self):
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    66
        config.main.dburl="mysql://t@localhost/test"
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    67
        self.assertFalse(install.checkDatabaseConnection())
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    68
        self.assertEqual(len(self.log.e),1)
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    69
        self.assertTrue(self.log.e[0]['message'][0].startswith("Error while trying to connect to database\n"))
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    70
        config.main.dburl="sqlite://"
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    71
        self.assertTrue(install.checkDatabaseConnection())
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    72
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    73
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    74
    def testCreateDatabase(self):
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    75
        config.main.dburl=md.dburl2
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    76
        self.assertTrue(install.checkDatabaseConnection())
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    77
        self.assertFalse(install.checkDatabase())
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    78
        install.createDatabase()
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    79
        self.assertTrue(install.checkDatabase())
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    80
   
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    81
    def testCreateSampleConfig(self):
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    82
        install.createSampleConfig()
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    83
        with open("iro.conf",'r') as fp:
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    84
            c = fp.read()
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    85
        with open(os.path.abspath("../iro.conf.inst"),"r") as fp:
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    86
            self.assertEqual(c,fp.read())
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    87
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    88
    def testNoOverwrite(self):
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    89
        with open("iro.conf","w") as fp:
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    90
            fp.write("muhaha")
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    91
        install.createSampleConfig()
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    92
        with open("iro.conf",'r') as fp:
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    93
            self.assertEqual(fp.read(),"muhaha")
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    94
        self.assertEqual(len(self.log.e),1)
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    95
        self.assertEqual(self.log.e[0]['message'], ("iro.conf exists and will not be overwritten.",))
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    96
242
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
    97
    def testGetAllRoutesNone(self):
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
    98
        config.main.dburl=md.dburl2
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
    99
        install.createDatabase()
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   100
        self.assertEqual(install.getAllRoutes([]),{"orphand":Set(),"added":Set()})
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   101
        
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   102
    def testGetAllRoutesOrphand(self):
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   103
        config.main.dburl=md.dburl2
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   104
        install.createDatabase()
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   105
        self.engine = create_engine(md.dburl2)
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   106
        with WithSession(self.engine,True) as session:
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   107
            session.add(Offer(provider="p",route="r",typ="t",name="test"))
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   108
            session.add(Offer(provider="p",route="r2",typ="t",name="test2"))
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   109
        self.assertEqual(install.getAllRoutes([]),{"orphand":Set(["test","test2"]),"added":Set()})
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   110
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   111
    def testGetAllRoutesAdded(self):
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   112
        config.main.dburl=md.dburl2
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   113
        install.createDatabase()
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   114
        self.engine = create_engine(md.dburl2)
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   115
        class TestProvider(Provider):
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   116
            def __init__(self, name):       
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   117
                Provider.__init__(self, name, {"r":["1","2","3"]})
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   118
        providers["test"]=TestProvider
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   119
        sample_config = """[p]
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   120
typ= test
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   121
test= foo
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   122
"""
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   123
        config.configParser.readfp(io.BytesIO(sample_config))
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   124
        self.assertEqual(install.getAllRoutes(["p"]),{"orphand":Set(),"added":Set(["p_r_1","p_r_2","p_r_3"])}) 
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   125
        
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   126
        #test writing
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   127
        self.assertEqual(install.getAllRoutes(["p"],True),{"orphand":Set(),"added":Set(["p_r_1","p_r_2","p_r_3"])})
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   128
        with WithSession(self.engine,True) as session:
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   129
            o = Set([i[0] for i in session.query(Offer.name).all()])
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   130
            self.assertEqual(o,Set(["p_r_1","p_r_2","p_r_3"]))
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   131
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   132
        #nothing to do anymore
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   133
        self.assertEqual(install.getAllRoutes(["p"]),{"orphand":Set(),"added":Set()}) 
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   134
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   135
    def testGetAllRoutesOaA(self):
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   136
        config.main.dburl=md.dburl2
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   137
        install.createDatabase()
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   138
        self.engine = create_engine(md.dburl2)
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   139
        class TestProvider(Provider):
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   140
            def __init__(self, name):       
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   141
                Provider.__init__(self, name, {"r":["1","2","3"]})
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   142
        providers["test"]=TestProvider
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   143
        sample_config = """[p]
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   144
typ= test
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   145
test= foo
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   146
"""
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   147
        config.configParser.readfp(io.BytesIO(sample_config))
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   148
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   149
        with WithSession(self.engine,True) as session:
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   150
            session.add(Offer(provider="q",route="r",typ="t",name="test"))
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   151
            session.add(Offer(provider="q",route="r2",typ="t",name="test2"))
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   152
            session.add(Offer(provider="p",route="1",typ="r",name="foo"))
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   153
        self.assertEqual(install.getAllRoutes(["p"]),{"orphand":Set(["test","test2"]),"added":Set(["p_r_2","p_r_3"])}) 
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   154
        
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   155
        #test writing
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   156
        self.assertEqual(install.getAllRoutes(["p"],True),{"orphand":Set(["test","test2"]),"added":Set(["p_r_2","p_r_3"])})
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   157
        with WithSession(self.engine,True) as session:
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   158
            o = Set([i[0] for i in session.query(Offer.name).all()])
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   159
            self.assertEqual(o,Set(["test","test2","foo","p_r_2","p_r_3"]))
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   160
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   161
        self.assertEqual(install.getAllRoutes(["p"]),{"orphand":Set(["test","test2"]),"added":Set()}) 
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   162
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   163