Esempio n. 1
0
def get_manager(config):
    conn = config.registry._zodb_databases[''].open()
    root = conn.root()[APP_ROOT_NAME]
    manager = ZODBEvolutionManager(root,
                                   evolve_packagename='papaye.evolve',
                                   sw_version=SW_VERSION,
                                   initial_db_version=0)
    return manager
Esempio n. 2
0
 def test_check_database_config(self, mock):
     from papaye import check_database_config
     root = self.get_root()
     mock.return_value = ZODBEvolutionManager(
         root,
         evolve_packagename='papaye.evolve',
         sw_version=0,
         initial_db_version=0)
     result = check_database_config(self.config)
     self.assertTrue(result)
Esempio n. 3
0
    def test_check_database_config_outdated(self, mock):
        from papaye import check_database_config
        root = self.get_root()
        manager = ZODBEvolutionManager(root,
                                       evolve_packagename='papaye.evolve',
                                       sw_version=1,
                                       initial_db_version=0)
        manager.sw_version = 1
        mock.return_value = manager

        from pyramid.config import ConfigurationError
        self.assertRaises(ConfigurationError, check_database_config,
                          self.config)
Esempio n. 4
0
def evolve_database(root, sw_version, initial_db_version=0):
    from repoze.evolution import ZODBEvolutionManager, evolve_to_latest
    manager = ZODBEvolutionManager(
        root, evolve_packagename='pyGallerid.evolve',
        sw_version=sw_version,
        initial_db_version=initial_db_version
    )
    db_version = manager.get_db_version()
    sw_version = manager.get_sw_version()
    if db_version < sw_version:
        logger.info('Evolving database from %d to %d ...' \
                    % (db_version, sw_version))
    evolve_to_latest(manager)
    if db_version < sw_version:
        logger.info('Finished evolving of the database.')
Esempio n. 5
0
    def test_check_database_config_without_approot(self, mock):
        from papaye import check_database_config
        root = self.get_root()
        manager = ZODBEvolutionManager(root,
                                       evolve_packagename='papaye.evolve',
                                       sw_version=0,
                                       initial_db_version=0)
        mock.return_value = manager

        # Remove app_root
        del (self.config.registry._zodb_databases[''].open().root()
             ['papaye_root'])
        import transaction
        transaction.commit()

        from pyramid.config import ConfigurationError
        self.assertRaises(ConfigurationError, check_database_config,
                          self.config)
Esempio n. 6
0
def appmaker(zodb_root):
    """ This determines the root object for each request. If no site root exists,
        this function will run bootstrap_voteit and create one.
        Read more about traversal in the Pyramid docs.
        
        The funny looking try / except here is to bootstrap the site in case it hasn't been bootstrapped.
        This is faster than using an if statement.
    """
    try:
        return zodb_root['app_root']
    except KeyError:
        from voteit.core.bootstrap import bootstrap_voteit
        zodb_root['app_root'] = bootstrap_voteit()  #Returns a site root
        import transaction
        transaction.commit()
        #Set intitial version of database
        from repoze.evolution import ZODBEvolutionManager
        from voteit.core.evolve import VERSION
        manager = ZODBEvolutionManager(zodb_root['app_root'],
                                       evolve_packagename='voteit.core.evolve',
                                       sw_version=VERSION)
        manager.set_db_version(VERSION)
        manager.transaction.commit()
        return zodb_root['app_root']