iro/tests/install.py
author Sandro Knauß <bugs@sandroknauss.de>
Tue, 15 Apr 2025 01:22:19 +0200
changeset 316 63c681b8e92c
parent 294 0e75bd39767d
permissions -rw-r--r--
fix link to about.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
294
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 242
diff changeset
     1
# Copyright (c) 2012 netzguerilla.net <iro@netzguerilla.net>
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 242
diff changeset
     2
# 
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 242
diff changeset
     3
# This file is part of Iro.
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 242
diff changeset
     4
# 
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 242
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: 242
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: 242
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: 242
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: 242
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: 242
diff changeset
    10
# subject to the following conditions:
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 242
diff changeset
    11
# 
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 242
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: 242
diff changeset
    13
# all copies or substantial portions of the Software.
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 242
diff changeset
    14
# 
0e75bd39767d adding LICENSE to all files
Sandro Knauß <knauss@netzguerilla.net>
parents: 242
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: 242
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: 242
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: 242
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: 242
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: 242
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: 242
diff changeset
    21
221
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    22
#from mock import patch, Mock
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    23
from twisted.trial import unittest
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    24
from sqlalchemy import create_engine
242
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
    25
from sets import Set
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
    26
import io
221
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    27
import os
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
from iro import install
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    30
from iro import config
241
546316b0b09c moving DummyObserver and DummyPool -> iro.test_helpers.utils
Sandro Knauß <knauss@netzguerilla.net>
parents: 231
diff changeset
    31
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
    32
from iro.model.utils import WithSession
546316b0b09c moving DummyObserver and DummyPool -> iro.test_helpers.utils
Sandro Knauß <knauss@netzguerilla.net>
parents: 231
diff changeset
    33
from iro.offer.provider import providers, Provider
231
3929338fd17f moving tests -> iro.tests
Sandro Knauß <knauss@netzguerilla.net>
parents: 221
diff changeset
    34
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
    35
from ..test_helpers.utils import DummyObserver
221
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    36
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    37
class TestInstallation(unittest.TestCase):
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    38
    '''test install script'''
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
    def setUp(self):
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    41
        md.setUp()
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    42
        if not hasattr(md,"db2"):
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    43
            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
    44
            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
    45
            md.db2.create()
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    46
        self.log = DummyObserver()
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    47
        self.log.start()
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    48
        self.engine = None
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    49
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    50
    def tearDown(self):
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    51
        self.log.stop()
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    52
        if self.engine:
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    53
            Base.metadata.drop_all(self.engine)
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    54
            self.engine = None
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    55
        try:
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    56
            os.remove("iro.conf")
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    57
        except OSError as e:
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    58
            if e.errno != 2:
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    59
                raise
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    60
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    61
        
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    62
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    63
    def testCheckConfig(self):
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    64
        self.assertEqual(install.checkConfig(),False)
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    65
        with open("iro.conf",'w') as fp:
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    66
            fp.write("""[main]
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    67
dburl=foo""")
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    68
        self.assertEqual(install.checkConfig(),False)
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    69
        self.assertEqual(len(self.log.e),1)
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    70
        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
    71
        with open("iro.conf",'w') as fp:
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    72
            fp.write("""[main]
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    73
dburl=foo
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    74
port=123456
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    75
""")
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    76
        self.assertEqual(install.checkConfig(),True)
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    77
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    78
    def testCheckDatabase(self):
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    79
        config.main.dburl=md.dburl2
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    80
        self.assertTrue(install.checkDatabaseConnection())
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    81
        self.assertFalse(install.checkDatabase())
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    82
        self.engine = create_engine(md.dburl2)
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    83
        Base.metadata.create_all(self.engine)
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    84
        self.assertTrue(install.checkDatabase())
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    85
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    86
    def testCheckDatabaseConnection(self):
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    87
        config.main.dburl="mysql://t@localhost/test"
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    88
        self.assertFalse(install.checkDatabaseConnection())
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    89
        self.assertEqual(len(self.log.e),1)
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    90
        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
    91
        config.main.dburl="sqlite://"
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    92
        self.assertTrue(install.checkDatabaseConnection())
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    93
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    94
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    95
    def testCreateDatabase(self):
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    96
        config.main.dburl=md.dburl2
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    97
        self.assertTrue(install.checkDatabaseConnection())
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    98
        self.assertFalse(install.checkDatabase())
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    99
        install.createDatabase()
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   100
        self.assertTrue(install.checkDatabase())
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   101
   
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   102
    def testCreateSampleConfig(self):
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   103
        install.createSampleConfig()
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   104
        with open("iro.conf",'r') as fp:
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   105
            c = fp.read()
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   106
        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
   107
            self.assertEqual(c,fp.read())
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   108
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   109
    def testNoOverwrite(self):
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   110
        with open("iro.conf","w") as fp:
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   111
            fp.write("muhaha")
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   112
        install.createSampleConfig()
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   113
        with open("iro.conf",'r') as fp:
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   114
            self.assertEqual(fp.read(),"muhaha")
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   115
        self.assertEqual(len(self.log.e),1)
c8615310da30 adding install functions like checkDatabase, checkConfig etc. + tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   116
        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
   117
242
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   118
    def testGetAllRoutesNone(self):
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   119
        config.main.dburl=md.dburl2
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   120
        install.createDatabase()
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   121
        self.assertEqual(install.getAllRoutes([]),{"orphand":Set(),"added":Set()})
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
    def testGetAllRoutesOrphand(self):
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   124
        config.main.dburl=md.dburl2
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   125
        install.createDatabase()
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   126
        self.engine = create_engine(md.dburl2)
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   127
        with WithSession(self.engine,True) as session:
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   128
            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
   129
            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
   130
        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
   131
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   132
    def testGetAllRoutesAdded(self):
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   133
        config.main.dburl=md.dburl2
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   134
        install.createDatabase()
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   135
        self.engine = create_engine(md.dburl2)
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   136
        class TestProvider(Provider):
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   137
            def __init__(self, name):       
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   138
                Provider.__init__(self, name, {"r":["1","2","3"]})
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   139
        providers["test"]=TestProvider
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   140
        sample_config = """[p]
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   141
typ= test
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   142
test= foo
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   143
"""
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   144
        config.configParser.readfp(io.BytesIO(sample_config))
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   145
        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
   146
        
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   147
        #test writing
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   148
        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
   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
            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
   151
            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
   152
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   153
        #nothing to do anymore
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   154
        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
   155
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   156
    def testGetAllRoutesOaA(self):
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   157
        config.main.dburl=md.dburl2
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   158
        install.createDatabase()
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   159
        self.engine = create_engine(md.dburl2)
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   160
        class TestProvider(Provider):
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   161
            def __init__(self, name):       
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   162
                Provider.__init__(self, name, {"r":["1","2","3"]})
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   163
        providers["test"]=TestProvider
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   164
        sample_config = """[p]
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   165
typ= test
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   166
test= foo
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   167
"""
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   168
        config.configParser.readfp(io.BytesIO(sample_config))
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   169
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   170
        with WithSession(self.engine,True) as session:
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   171
            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
   172
            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
   173
            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
   174
        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
   175
        
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   176
        #test writing
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   177
        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
   178
        with WithSession(self.engine,True) as session:
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   179
            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
   180
            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
   181
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   182
        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
   183
745d829d1e02 tests for iro.install.getAllRoutes added
Sandro Knauß <knauss@netzguerilla.net>
parents: 241
diff changeset
   184