コード例 #1
0
    def prepare_test(load_config=True, connect_database=True,
                     connect_logger=True):
        config_file_name = Utils.new_tmp_file()
        log_file_name = Utils.new_tmp_file()
        db_file_name = Utils.new_tmp_file()
        contest_dir = Utils.new_tmp_dir("contest", create=False)

        with open(config_file_name, 'w') as file:
            file.write("logfile: %s\n"
                       "db: %s\n"
                       "storedir: %s\n"
                       "contest_path: %s\n" % (log_file_name, db_file_name,
                                               Utils.new_tmp_dir(),
                                               contest_dir))

        if load_config:
            Config.loaded = False
            Config.set_config_file(config_file_name)
        if connect_logger:
            Logger.connected = False
            Logger.connect_to_database()
            Logger.set_log_level("WARNING")
        if connect_database:
            Database.connected = False
            Database.connect_to_database()
コード例 #2
0
def extract_and_connect(path, workdir):
    from terry.config import Config
    from terry.database import Database
    from terry.logger import Logger

    with zipfile.ZipFile(path) as f:
        f.extractall(workdir)
    db_path = os.path.join(workdir, "db.sqlite3")
    log_path = os.path.join(workdir, "log.sqlite3")
    Config.db = db_path
    Config.logfile = log_path
    Database.connect_to_database()
    Logger.connect_to_database()
    try:
        yield
    finally:
        Database.disconnect_database()
        Logger.disconnect_database()
コード例 #3
0
def main():
    parser = argparse.ArgumentParser()
    parser.add_argument("-c",
                        "--config",
                        help="Path to the config file",
                        default="config/config.yaml")
    args = parser.parse_args()

    if args.config:
        Config.set_config_file(args.config)

    Logger.set_log_level(Config.log_level)
    Logger.connect_to_database()
    Database.connect_to_database()
    try:
        ContestManager.read_from_disk(remove_enc=False)
    except:
        Logger.warning("CONTEST", "Failed to read the contest from disk...")
    server = Server()
    server.run()
コード例 #4
0
 def test_invalid_db_path(self):
     Config.logfile = "/path/that/not/exists"
     Logger.connected = False
     with self.assertRaises(Exception):
         Logger.connect_to_database()
コード例 #5
0
 def test_double_connect_to_database(self):
     Logger.connected = False
     Logger.connect_to_database()
     with self.assertRaises(RuntimeError) as ex:
         Logger.connect_to_database()
     self.assertEqual("Database already loaded", ex.exception.args[0])
コード例 #6
0
 def test_connect_to_database(self):
     Logger.connected = False
     Logger.connect_to_database()