def job_assigment_config(request, project, job): project = get_object_or_404(Project, slug=project) job = get_object_or_404(Job, slug=job) job = job.get_domain_object() computers = BuildComputer.objects.all().order_by('name') computer_form = get_build_computer_selection_form(computers)() job_form = get_job_configuration_form(job) scheduler_form = get_scheduler_form() if request.method == "POST": computer_form = get_build_computer_selection_form(computers)(request.POST) job_form = get_job_configuration_form(job, post=request.POST) scheduler_form = get_scheduler_form(post=request.POST) if computer_form.is_valid() and job_form.is_valid() and scheduler_form.is_valid(): computer = get_object_or_404(BuildComputer, pk=computer_form.cleaned_data['computer']) params = get_command_params_from_form_data(job, job_form.cleaned_data) params.update(scheduler_form.get_configuration_dict()) create_job_assignment(computer=computer, job=job, project=project, params=params) return HttpResponseRedirect(reverse('cthulhubot-project-detail', kwargs={'project' : project.slug})) return direct_to_template(request, 'cthulhubot/job_assigment_config.html', { 'project' : project, 'job' : job, 'job_form' : job_form, 'computers' : computers, 'computer_form' : computer_form, 'scheduler_form' : scheduler_form, })
def test_empty_form_provided_for_command_one_returned(self): self.assert_equals({'commands' : [{'command': 'cthulhubot-sleep', 'parameters': {}}]}, get_command_params_from_form_data(self.job, {}))