Allow write custom testrun in scheduler PRODX-39509
Change-Id: Iccae2b41f52f2cfb83c11c4352347c2d96da7923
diff --git a/testrail_bot/control/views.py b/testrail_bot/control/views.py
index 8d5f692..e6655ad 100644
--- a/testrail_bot/control/views.py
+++ b/testrail_bot/control/views.py
@@ -265,12 +265,13 @@
{
"form": form,
"pk": pk,
- "TASK_CHOICES": models.TASK_CHOICES
+ "TASKS": models.TASKS
}
)
def save_scheduler(request, pk=None):
+ print(f"{request.POST=}")
minute, hour, day_of_month, month_of_year, day_of_week = \
request.POST.get("cron", "* * * * *").split(" ")
if pk is None:
@@ -285,15 +286,18 @@
crontab=sch,
cron=request.POST.get("cron"),
name=request.POST.get("name"),
- task="control.celery_tasks.tasks.check_today_testplan",
+ task_name=request.POST.get("task_name"),
enabled=request.POST.get("enabled") == 'on',
- # TODO(harhipova): uncomment when implemented tasks with arguments
- # args=args,
- # kwargs=kwargs,
+ testplan_id_arg=request.POST.get("testplan_id_arg"),
)
else:
task = models.CronPeriodicTask.objects.get(pk=pk)
+
+ task.task = request.POST.get("task_name")
+ task.args = json.dumps((request.POST.get("testplan_id_arg"),))
+
form = forms.PeriodicTaskForm(request.POST, instance=task)
+
CrontabSchedule.objects.filter(id=task.crontab.id).update(
minute=minute,
hour=hour,
@@ -301,6 +305,9 @@
month_of_year=month_of_year,
day_of_week=day_of_week
)
+ if not form.is_valid():
+ print(f"{form.errors=}")
+ return
form.save()
PeriodicTasks.update_changed()
return render(
@@ -308,7 +315,7 @@
{
"form": form,
"pk": task.id,
- "TASK_CHOICES": models.TASK_CHOICES
+ "TASKS": models.TASKS
}
)