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 test_set_log_level_numeric(self): backup = Logger.LOG_LEVEL Logger.set_log_level(Logger.ERROR) self.assertEqual(Logger.LOG_LEVEL, Logger.ERROR) Logger.LOG_LEVEL = backup
def test_run(self, spawn, init): Logger.set_log_level("INFO") with patch.object(spawn(), "join") as join: with Utils.nostderr() as stderr: self.server.run() init.assert_called_once_with() self.assertTrue(spawn.called) join.assert_called_once_with() self.assertIn("SERVER_STATUS", stderr.buffer) self.assertIn("Server started", stderr.buffer)
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_wsgi_app_404(self): Logger.set_log_level("ERROR") res = self.server.wsgi_app( EnvironBuilder("/not_found").get_environ(), None) self.assertIsInstance(res, NotFound)
def test_admin_only_lower_case(self): Utils.prepare_test() Database.set_meta("admin_token", "ADMIN-TOKEN") Logger.set_log_level(9001) self.admin_only(admin_token="admin-token", _ip="1.1.1.1")
def test_admin_only_invalid_token(self): Utils.prepare_test() Database.set_meta("admin_token", "ADMIN-TOKEN") Logger.set_log_level(9001) with self.assertRaises(Forbidden): self.admin_only(admin_token="WRONG-TOKEN", _ip="1.1.1.1")