예제 #1
0
    def test_all_details_submitted(self):
        form_instance = PostQuestionForm(
            data={
                "title": "Sample Title",
                "category": self.cat,
                "short_description": "Sample Short Description",
                "description": "Sample Description",
                "time_limit": 2,
                "unique_code": "samques001",
                "constraints": "Sample constraints",
                "input_format": "sample inp format",
                "output_format": "sample_output_format",
                "sample_input": "Sample Input",
                "sample_output": "Sample Output"
            })

        self.assertEqual(form_instance.is_valid(), True)

        question = form_instance.save(commit=False)
        question.author = self.user
        question.save()

        model_instance = Question.objects.get(unique_code="samques001")

        self.assertEqual(model_instance.title, "Sample Title")
        self.assertEqual(model_instance.short_description,
                         "Sample Short Description")
        self.assertEqual(model_instance.description, "Sample Description")
        self.assertEqual(model_instance.time_limit, 2.0)
        self.assertEqual(model_instance.constraints, "Sample constraints")
        self.assertEqual(model_instance.input_format, "sample inp format")
        self.assertEqual(model_instance.output_format, "sample_output_format")
        self.assertEqual(model_instance.sample_input, "Sample Input")
        self.assertEqual(model_instance.sample_output, "Sample Output")
예제 #2
0
파일: views.py 프로젝트: arminp17/ase1_prj
def contest_question_create(request, contest_unique_id=None):
    contest_id = get_object_or_404(Contest, unique_code=contest_unique_id)
    if (contest_id.author != request.user):
        return PermissionDenied("You can not post question in this contest!")
    if (request.method == "POST"):
        form = PostQuestionForm(request.POST)
        contest_question_points = ContestQuestionForm(request.POST)
        if form.is_valid() and contest_question_points.is_valid():
            question = form.save(commit=False)
            question.author = request.user
            question.active = False
            question.save()
            contest_question = contest_question_points.save(commit=False)
            contest_question.contest = contest_id
            contest_question.question = question
            contest_question.save()
            return redirect('questions:view_the_question',
                            question.unique_code)
    else:
        form = PostQuestionForm()
        contest_question_points = ContestQuestionForm()
    context = {
        'form': form,
        'cq': contest_question_points,
    }
    return render(request, 'contests/create_contest_question.html', context)
예제 #3
0
파일: views.py 프로젝트: arminp17/ase1_prj
def contest_question_edit(request, contest_unique_id, question_unique_id):
    question_instance = get_object_or_404(Question,
                                          unique_code=question_unique_id)
    contest_instance = get_object_or_404(Contest,
                                         unique_code=contest_unique_id)
    instance = get_object_or_404(ContestQuestion,
                                 question=question_instance,
                                 contest=contest_instance)
    form = PostQuestionForm(request.POST or None,
                            instance=question_instance,
                            initial={"category": question_instance.category})
    contest_question_points = ContestQuestionForm(request.POST or None,
                                                  instance=instance)
    if form.is_valid() and contest_question_points.is_valid():
        points = contest_question_points.cleaned_data["points"]
        contest_question_form = form.save(commit=False)
        contest_question_form.save()
        contest_question_points.save()
        return redirect('questions:view_the_question',
                        question_instance.unique_code)
    context = {'form': form, 'cq': contest_question_points}
    return render(request, "contests/create_contest_question.html", context)