def show_all_questions(request): """Show a list of all the questions currently in the databse.""" user = request.user ci = RequestContext(request) context = {} if not is_moderator(user): raise Http404("You are not allowed to view this page !") if request.method == 'POST': if request.POST.get('delete') == 'delete': data = request.POST.getlist('question') if data is not None: question = Question.objects.filter(id__in=data, user_id=user.id).delete() if request.POST.get('upload') == 'upload': form = UploadFileForm(request.POST, request.FILES) if form.is_valid(): questions_file = request.FILES['file'] if questions_file.name.split('.')[-1] == "json": questions_list = questions_file.read() question = Question() question.load_from_json(questions_list, user) else: message = "Please Upload a JSON file" context['message'] = message if request.POST.get('download') == 'download': question_ids = request.POST.getlist('question') if question_ids: question = Question() questions = question.dump_into_json(question_ids, user) response = HttpResponse(questions, content_type='text/json') response['Content-Disposition'] = 'attachment; filename=\ "{0}_questions.json"'.format(user) return response else: msg = "Please select atleast one question" context['msg'] = msg questions = Question.objects.filter(user_id=user.id) form = QuestionFilterForm(user=user) upload_form = UploadFileForm() context['papers'] = [] context['question'] = None context['questions'] = questions context['form'] = form context['upload_form'] = upload_form return my_render_to_response('yaksh/showquestions.html', context, context_instance=ci)
def test_load_questions_from_json(self): """ Test load questions into database from json """ question = Question() result = question.load_from_json(self.json_questions_data, self.user1) question_data = Question.objects.get(pk=25) self.assertEqual(question_data.summary, 'Json Demo') self.assertEqual(question_data.language, 'Python') self.assertEqual(question_data.type, 'Code') self.assertEqual(question_data.description, 'factorial of a no') self.assertEqual(question_data.points, 1.0) self.assertTrue(question_data.active) self.assertEqual(question_data.snippet, 'def fact()')
def test_load_questions_from_json(self): """ Test load questions into database from json """ question = Question() result = question.load_from_json(self.json_questions_data, self.user1) question_data = Question.objects.get(pk=25) test_case = question_data.get_test_cases() self.assertEqual(question_data.summary, 'Json Demo') self.assertEqual(question_data.language, 'Python') self.assertEqual(question_data.type, 'Code') self.assertEqual(question_data.description, 'factorial of a no') self.assertEqual(question_data.points, 1.0) self.assertTrue(question_data.active) self.assertEqual(question_data.snippet, 'def fact()') self.assertEqual(question_data.test_case_type, 'standardtestcase') self.assertEqual([case.get_field_value() for case in test_case], self.test_case_upload_data)