iro/tests/install.py
branchdevel
changeset 242 745d829d1e02
parent 241 546316b0b09c
child 294 0e75bd39767d
equal deleted inserted replaced
241:546316b0b09c 242:745d829d1e02
     1 #from mock import patch, Mock
     1 #from mock import patch, Mock
     2 from twisted.trial import unittest
     2 from twisted.trial import unittest
     3 from twisted.python import log
       
     4 from sqlalchemy import create_engine
     3 from sqlalchemy import create_engine
       
     4 from sets import Set
       
     5 import io
     5 import os
     6 import os
     6 
     7 
     7 from iro import install
     8 from iro import install
     8 from iro import config
     9 from iro import config
     9 from iro.model.schema import Base, Offer
    10 from iro.model.schema import Base, Offer
    91         with open("iro.conf",'r') as fp:
    92         with open("iro.conf",'r') as fp:
    92             self.assertEqual(fp.read(),"muhaha")
    93             self.assertEqual(fp.read(),"muhaha")
    93         self.assertEqual(len(self.log.e),1)
    94         self.assertEqual(len(self.log.e),1)
    94         self.assertEqual(self.log.e[0]['message'], ("iro.conf exists and will not be overwritten.",))
    95         self.assertEqual(self.log.e[0]['message'], ("iro.conf exists and will not be overwritten.",))
    95 
    96 
    96     def testCheck(self):
    97     def testGetAllRoutesNone(self):
    97         pass
    98         config.main.dburl=md.dburl2
    98     testCheck.todo = "to implement"
    99         install.createDatabase()
       
   100         self.assertEqual(install.getAllRoutes([]),{"orphand":Set(),"added":Set()})
       
   101         
       
   102     def testGetAllRoutesOrphand(self):
       
   103         config.main.dburl=md.dburl2
       
   104         install.createDatabase()
       
   105         self.engine = create_engine(md.dburl2)
       
   106         with WithSession(self.engine,True) as session:
       
   107             session.add(Offer(provider="p",route="r",typ="t",name="test"))
       
   108             session.add(Offer(provider="p",route="r2",typ="t",name="test2"))
       
   109         self.assertEqual(install.getAllRoutes([]),{"orphand":Set(["test","test2"]),"added":Set()})
       
   110 
       
   111     def testGetAllRoutesAdded(self):
       
   112         config.main.dburl=md.dburl2
       
   113         install.createDatabase()
       
   114         self.engine = create_engine(md.dburl2)
       
   115         class TestProvider(Provider):
       
   116             def __init__(self, name):       
       
   117                 Provider.__init__(self, name, {"r":["1","2","3"]})
       
   118         providers["test"]=TestProvider
       
   119         sample_config = """[p]
       
   120 typ= test
       
   121 test= foo
       
   122 """
       
   123         config.configParser.readfp(io.BytesIO(sample_config))
       
   124         self.assertEqual(install.getAllRoutes(["p"]),{"orphand":Set(),"added":Set(["p_r_1","p_r_2","p_r_3"])}) 
       
   125         
       
   126         #test writing
       
   127         self.assertEqual(install.getAllRoutes(["p"],True),{"orphand":Set(),"added":Set(["p_r_1","p_r_2","p_r_3"])})
       
   128         with WithSession(self.engine,True) as session:
       
   129             o = Set([i[0] for i in session.query(Offer.name).all()])
       
   130             self.assertEqual(o,Set(["p_r_1","p_r_2","p_r_3"]))
       
   131 
       
   132         #nothing to do anymore
       
   133         self.assertEqual(install.getAllRoutes(["p"]),{"orphand":Set(),"added":Set()}) 
       
   134 
       
   135     def testGetAllRoutesOaA(self):
       
   136         config.main.dburl=md.dburl2
       
   137         install.createDatabase()
       
   138         self.engine = create_engine(md.dburl2)
       
   139         class TestProvider(Provider):
       
   140             def __init__(self, name):       
       
   141                 Provider.__init__(self, name, {"r":["1","2","3"]})
       
   142         providers["test"]=TestProvider
       
   143         sample_config = """[p]
       
   144 typ= test
       
   145 test= foo
       
   146 """
       
   147         config.configParser.readfp(io.BytesIO(sample_config))
       
   148 
       
   149         with WithSession(self.engine,True) as session:
       
   150             session.add(Offer(provider="q",route="r",typ="t",name="test"))
       
   151             session.add(Offer(provider="q",route="r2",typ="t",name="test2"))
       
   152             session.add(Offer(provider="p",route="1",typ="r",name="foo"))
       
   153         self.assertEqual(install.getAllRoutes(["p"]),{"orphand":Set(["test","test2"]),"added":Set(["p_r_2","p_r_3"])}) 
       
   154         
       
   155         #test writing
       
   156         self.assertEqual(install.getAllRoutes(["p"],True),{"orphand":Set(["test","test2"]),"added":Set(["p_r_2","p_r_3"])})
       
   157         with WithSession(self.engine,True) as session:
       
   158             o = Set([i[0] for i in session.query(Offer.name).all()])
       
   159             self.assertEqual(o,Set(["test","test2","foo","p_r_2","p_r_3"]))
       
   160 
       
   161         self.assertEqual(install.getAllRoutes(["p"]),{"orphand":Set(["test","test2"]),"added":Set()}) 
       
   162 
       
   163