This commit is contained in:
Egor Matveev
2022-02-25 16:13:49 +03:00
parent cc7a21e787
commit 44ee8f15b7
4 changed files with 35 additions and 3 deletions

View File

@@ -6,7 +6,7 @@ from Main.management.commands.bot import bot
from Main.models import ExtraFile, SolutionFile
from Main.models.progress import Progress
from Sprint.settings import CONSTS
from SprintLib.utils import get_bytes
from SprintLib.utils import get_bytes, Timer
class TestException(Exception):
@@ -121,7 +121,16 @@ class BaseTester:
print('predicted:', self.predicted)
self.solution.test = int(test.filename)
self.solution.save()
self.test(test.filename)
try:
with Timer(self.solution, test.filename) as timer:
self.test(test.filename)
finally:
self.solution.extras[test.filename]['predicted'] = test.text
if exists(join(self.path, "output.txt")):
try:
self.solution.extras[test.filename]['output'] = open(join(self.path, 'output.txt'), 'r').read()
except UnicodeDecodeError:
self.solution.extras[test.filename]['output'] = ''
self.after_test()
self.solution.result = CONSTS["ok_status"]
self.solution.test = None

View File

@@ -1,3 +1,4 @@
import datetime
from random import choice
from requests import get, post
@@ -26,3 +27,20 @@ def delete_file(num: int):
def generate_token():
letters = '1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM'
return ''.join([choice(letters) for _ in range(30)])
class Timer:
start_time = None
end_time = None
def __init__(self, solution, test):
self.solution = solution
self.test = test
def __enter__(self):
assert self.start_time is None
self.start_time = datetime.datetime.now()
def __exit__(self, exc_type, exc_val, exc_tb):
self.end_time = datetime.datetime.now()
self.solution.extras[self.test]['time_spent'] = (self.end_time - self.start_time).total_seconds() * 1000