Example #1
0
 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")