sprint/daemons/management/commands/receive.py
Egor Matveev 95ef8a7821 queue
2022-03-15 20:20:37 +03:00

27 lines
731 B
Python

from os.path import join, exists
from shutil import rmtree
from Main.models import Solution
from SprintLib.queue import MessagingSupport
from SprintLib.testers import *
class Command(MessagingSupport):
help = "Tests solution"
queue_name = "test"
def process(self, payload: dict):
id = payload['id']
print(f"Received id {id}")
solution = Solution.objects.get(id=id)
try:
eval(solution.language.work_name + "Tester")(solution).execute()
except Exception as e:
print(e)
solution.result = "TE"
solution.save()
finally:
path = join("solutions", str(id))
if exists(path):
rmtree(path)