示例#1
0
文件: cum.py 项目: theowhy/cum
def repair_db():
    """Runs an automated database repair."""
    sanity_tester = sanity.DatabaseSanity(db.Base, db.engine)
    sanity_tester.test()
    if sanity_tester.errors:
        output.series('Backing up database to cum.db.bak')
        db.backup_database()
        output.series('Running database repair')
        for error in sanity_tester.errors:
            error.fix()
示例#2
0
文件: db.py 项目: kozec/cum
def test_database():
    """Runs a database sanity test."""
    sanity_tester = sanity.DatabaseSanity(Base, engine)
    sanity_tester.test()
    if sanity_tester.errors:
        for error in sanity_tester.errors:
            err_target, err_msg = str(error).split(' ', 1)
            message = ' '.join([click.style(err_target, bold=True), err_msg])
            output.warning(message)
        output.error('Database has failed sanity check; '
                     'run `cum repair-db` to repair database')
        exit(1)
示例#3
0
    def test_repair_db(self):
        MESSAGES = [
            'Backing up database to cum.db.bak', 'Running database repair'
        ]

        self.copy_broken_database()
        backup_database = os.path.join(self.directory.name, 'cum.db.bak')

        result = self.invoke('repair-db')
        self.assertTrue(os.path.isfile(backup_database))
        self.assertEqual(result.exit_code, 0)
        for message in MESSAGES:
            self.assertIn(message, result.output)
        sanity_tester = sanity.DatabaseSanity(self.db.Base, self.db.engine)
        sanity_tester.test()
        self.assertTrue(sanity_tester.is_sane)