tester in docker works
This commit is contained in:
0
Main/management/commands/__init__.py
Normal file
0
Main/management/commands/__init__.py
Normal file
32
Main/management/commands/receive.py
Normal file
32
Main/management/commands/receive.py
Normal file
@@ -0,0 +1,32 @@
|
||||
import pika
|
||||
from django.core.management.base import BaseCommand
|
||||
|
||||
from Main.models import Solution
|
||||
from Sprint import settings
|
||||
from SprintLib.testers import *
|
||||
|
||||
|
||||
class Command(BaseCommand):
|
||||
help = 'Tests solution'
|
||||
|
||||
def handle(self, *args, **options):
|
||||
print("Enter worker")
|
||||
connection = pika.BlockingConnection(pika.ConnectionParameters(host=settings.RABBIT_HOST))
|
||||
channel = connection.channel()
|
||||
channel.queue_declare(queue='test')
|
||||
|
||||
def callback(ch, method, properties, body):
|
||||
try:
|
||||
id = int(str(body, encoding='utf-8'))
|
||||
print(f"Received id {id}")
|
||||
solution = Solution.objects.get(id=id)
|
||||
except:
|
||||
return
|
||||
try:
|
||||
eval(solution.language.work_name + 'Tester')(solution).execute()
|
||||
except:
|
||||
solution.result = 'TE'
|
||||
solution.save()
|
||||
|
||||
channel.basic_consume(queue='test', on_message_callback=callback, auto_ack=True)
|
||||
channel.start_consuming()
|
15
Main/management/commands/test.py
Normal file
15
Main/management/commands/test.py
Normal file
@@ -0,0 +1,15 @@
|
||||
from django.core.management.base import BaseCommand
|
||||
|
||||
from Main.models import Solution
|
||||
from SprintLib.testers import *
|
||||
|
||||
|
||||
class Command(BaseCommand):
|
||||
help = 'Tests solution'
|
||||
|
||||
def add_arguments(self, parser):
|
||||
parser.add_argument('solution_id', type=int)
|
||||
|
||||
def handle(self, *args, **options):
|
||||
solution = Solution.objects.get(id=options['solution_id'])
|
||||
eval(solution.language.work_name + 'Tester')(solution).execute()
|
8
Main/management/commands/update_languages.py
Normal file
8
Main/management/commands/update_languages.py
Normal file
@@ -0,0 +1,8 @@
|
||||
from django.core.management.base import BaseCommand
|
||||
|
||||
|
||||
class Command(BaseCommand):
|
||||
help = 'Updates languages'
|
||||
|
||||
def handle(self, *args, **options):
|
||||
pass
|
Reference in New Issue
Block a user