示例#1
0
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,
    })
示例#2
0
def job_add(request, job):
    job_class = get_undiscovered_jobs().get(job)
    if not job_class:
        raise Http404()

    job = job_class()

    form = get_job_configuration_form(job)

    return direct_to_template(request, 'cthulhubot/job_add.html', {
        'job' : job,
        'form' : form,
    })
示例#3
0
 def test_parameters_from_command_propagated_to_form_even_if_not_specified_there(self):
     self.assert_equals(1, len(get_job_configuration_form(self.echo_job).fields))
示例#4
0
 def test_form_created_with_proper_number_of_fields(self):
     self.assert_equals(1, len(get_job_configuration_form(self.job).fields))
示例#5
0
 def test_form_default_values_propagated_to_initials(self):
     self.assert_equals(0.02, get_job_configuration_form(self.job).initial.get('job_configuration_0'))