def set_extra_time(self, extra_time: int, user): """ POST /admin/set_extra_time """ if user is None: Database.set_meta("extra_time", extra_time) Logger.info("ADMIN", "Global extra time set to %d" % extra_time) else: Logger.info( "ADMIN", "Extra time for user %s set to %d" % (user["token"], extra_time)) Database.set_extra_time(user["token"], extra_time) return {}
def test_get_user(self): now = int(datetime.utcnow().timestamp()) Database.set_meta("start_time", now) Database.set_meta("contest_duration", 1000) Database.set_meta("extra_time", 50) Database.add_user("token", "", "") Database.set_extra_time("token", 30) Database.add_task("poldo", "", "", 42, 1) Database.add_user_task("token", "poldo") Database.add_input("inputid", "token", "poldo", 1, "/path", 42) Database.set_user_attempt("token", "poldo", 1) res = self.handler.get_user(token="token", _ip="1.1.1.1") end_time = datetime.fromtimestamp(now + 1080, timezone.utc).isoformat() self.assertEqual(end_time, res["end_time"]) self.assertEqual("poldo", res["tasks"]["poldo"]["name"]) self.assertEqual("inputid", res["tasks"]["poldo"]["current_input"]["id"])
def test_during_contest_extra_time(self): Utils.start_contest(since=100, duration=20) Database.add_user("token", "", "") Database.set_extra_time("token", 100) self.only_during_contest(token="token")