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 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
示例#3
0
 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()
示例#5
0
 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")