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()
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()
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()
def test_invalid_db_path(self): Config.logfile = "/path/that/not/exists" Logger.connected = False with self.assertRaises(Exception): Logger.connect_to_database()
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])
def test_connect_to_database(self): Logger.connected = False Logger.connect_to_database()