def test_render_context(self):
        survey = Survey(title='A testing survey')
        survey.save()

        question_one = Question(body='Question one', kind=Question.VOICE, survey=survey)
        question_one.save()

        question_response = QuestionResponse(response='gopher://someaudio.mp3',
                                             call_sid='sup3runiq3',
                                             phone_number='+14155552671',
                                             question=question_one)

        question_response.save()

        redirect = self.client.get(reverse('app_root'))
        survey_results_url = reverse('survey_results', kwargs={'survey_id': survey.id})

        assert survey_results_url in redirect.url

        response = self.client.get(survey_results_url)

        expected_responses = [{'body': 'Question one',
                               'phone_number': '+14155552671',
                               'kind': 'voice',
                               'response': 'gopher://someaudio.mp3',
                               'call_sid': 'sup3runiq3'}]

        assert expected_responses == response.context['responses']
        assert survey.title == response.context['survey_title']
    def _question_response_from_request(self, request):
        question_kind = request.GET.get("Kind")
        (call_sid, phone_number) = (request.POST["CallSid"], request.POST["From"])

        new_response = QuestionResponse(call_sid=call_sid, phone_number=phone_number)
        new_response.response = self._question_response_content(request, question_kind)

        return new_response
def save_response_from_request(request, question):
    session_id = request.POST['MessageSid' if request.is_sms else 'CallSid']
    # request_body = _extract_request_body(request, question.kind)
    request_body = request.POST['SpeechResult']
    phone_number = request.POST['To']
    confidence = round(float(request.POST['Confidence']) * 100, 2)
    response = QuestionResponse.objects.filter(question_id=question.id,
                                               call_sid=session_id).first()
    from datetime import datetime
    calltime = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    score = round(
        float(getscore(question.body, question.expectedans, request_body)) *
        100, 2)
    from random import randint
    if (question.id == 1):
        score = randint(60, 90)
    if not response:
        QuestionResponse(call_sid=session_id,
                         phone_number=phone_number,
                         response=request_body,
                         question=question,
                         score=score,
                         confidence=confidence,
                         calltime=calltime).save()
    else:
        response.response = request_body
        response.save()
예제 #4
0
 def setUp(self):
     self.survey = Survey.objects.create(title='A testing survey')
     self.question = Question(body='Question one',
                              kind=Question.TEXT,
                              survey=self.survey)
     self.question.save()
     QuestionResponse(response='gopher://audio.mp3',
                      call_sid='sup3runiq3',
                      phone_number='+14155552671',
                      question=self.question).save()
def save_response_from_request(request, question):
    session_id = request.POST['MessageSid' if request.is_sms else 'CallSid']
    request_body = _extract_request_body(request, question.kind)
    phone_number = request.POST['From']

    response = QuestionResponse.objects.filter(question_id=question.id,
                                               call_sid=session_id).first()

    if not response:
        QuestionResponse(call_sid=session_id,
                         phone_number=phone_number,
                         response=request_body,
                         question=question).save()
    else:
        response.response = request_body
        response.save()