def test_generate_response_xml(self):
     '''
     Should generate response XML.
     '''
     response = OutcomeResponse()
     response.process_xml(self.response_xml)
     self.assertEqual(response.generate_response_xml(), self.response_xml)
Beispiel #2
0
 def test_generate_response_xml(self):
     '''
     Should generate response XML.
     '''
     response = OutcomeResponse()
     response.process_xml(self.response_xml)
     self.assertEqual(response.generate_response_xml(), self.response_xml)
 def test_recognize_failure_response(self):
     '''
     Should recognize a failure response.
     '''
     failure_xml = self.response_xml.replace('success', 'failure')
     fake = self.mock_response(failure_xml)
     result = OutcomeResponse.from_post_response(fake)
     self.assertTrue(result.is_failure())
Beispiel #4
0
 def test_recognize_failure_response(self):
     '''
     Should recognize a failure response.
     '''
     failure_xml = self.response_xml.replace('success', 'failure')
     fake = self.mock_response(failure_xml)
     result = OutcomeResponse.from_post_response(fake, failure_xml)
     self.assertTrue(result.is_failure())
    def post_outcome_request(self):
        """
        POST an OAuth signed request to the Tool Consumer.
        """
        session = BodyHashOAuth1Session(self.consumer_key, self.consumer_secret)

        body = self.generate_request_xml()
        headers = {'Content-Type': 'application/xml'}

        response = session.post(self.lis_outcome_service_url, data=body, headers=headers)

        outcome_response = OutcomeResponse()
        outcome_response.post_response = response
        outcome_response.response_code = response.status_code
        outcome_response.process_xml(response.text)

        self.outcome_response = outcome_response
        return outcome_response
 def test_parse_replace_result_response_xml(self):
     '''
     Should parse replaceResult response XML.
     '''
     fake = self.mock_response(self.response_xml)
     response = OutcomeResponse.from_post_response(fake)
     self.assertTrue(response.is_success())
     self.assertEqual(response.code_major, 'success')
     self.assertEqual(response.severity, 'status')
     self.assertEqual(response.description, '')
     self.assertEqual(response.message_ref_identifier, '123456789')
     self.assertEqual(response.operation, 'replaceResult')
     self.assertEqual(response.score, None)
Beispiel #7
0
 def test_parse_replace_result_response_xml(self):
     '''
     Should parse replaceResult response XML.
     '''
     fake = self.mock_response(self.response_xml)
     response = OutcomeResponse.from_post_response(fake, self.response_xml)
     self.assertTrue(response.is_success())
     self.assertEqual(response.code_major, 'success')
     self.assertEqual(response.severity, 'status')
     self.assertEqual(response.description, '')
     self.assertEqual(response.message_ref_identifier, '123456789')
     self.assertEqual(response.operation, 'replaceResult')
     self.assertEqual(response.score, None)
    def test_parse_read_result_response_xml(self):
        '''
        Should parse readResult response XML.
        '''
        read_xml = self.response_xml.replace(\
                '<replaceResultResponse/>',\
                '''<readResultResponse>
<result>
<resultScore>
<language>en</language>
<textString>0.91</textString>
</resultScore>
</result>
</readResultResponse>''')
        fake = self.mock_response(read_xml)
        response = OutcomeResponse.from_post_response(fake)
        self.assertTrue(response.is_success())
        self.assertEqual(response.code_major, 'success')
        self.assertEqual(response.severity, 'status')
        self.assertEqual(response.description, '')
        self.assertEqual(response.message_ref_identifier, '123456789')
        self.assertEqual(response.score, '0.91')
Beispiel #9
0
    def test_parse_read_result_response_xml(self):
        '''
        Should parse readResult response XML.
        '''
        read_xml = self.response_xml.replace(\
                '<replaceResultResponse/>',\
                '''<readResultResponse>
<result>
<resultScore>
<language>en</language>
<textString>0.91</textString>
</resultScore>
</result>
</readResultResponse>''')
        fake = self.mock_response(read_xml)
        response = OutcomeResponse.from_post_response(fake, read_xml)
        self.assertTrue(response.is_success())
        self.assertEqual(response.code_major, 'success')
        self.assertEqual(response.severity, 'status')
        self.assertEqual(response.description, '')
        self.assertEqual(response.message_ref_identifier, '123456789')
        self.assertEqual(response.score, '0.91')
def grade_passback():
    outcome_request = OutcomeRequest.from_post_request(request)
    sourcedid = outcome_request.lis_result_sourcedid
    consumer = ToolConsumer('test', 'secret')

    print "outcomes service url triggered"
    #    if consumer.is_valid_request(request):
    if True:

        # TODO: Check oauth timestamp
        # TODO: Check oauth nonce

        response = OutcomeResponse()
        response.message_ref_identifier = outcome_request.message_identifier
        response.operation = outcome_request.operation
        response.code_major = 'success'
        response.severity = 'status'

        if outcome_request.is_replace_request():
            response.description = 'Your old score of 0 has been replaced with %s' % (
                outcome_request.score)
            global outcome
            outcome = outcome_request.score
        elif outcome_request.is_read_request():
            response.description = 'Your score is 50'
            response.score = 50
        elif outcome_request.is_delete_request():
            response.description = 'Your score has been cleared'
        else:
            response.code_major = 'unsupported'
            response.severity = 'status'
            response.description = '%s is not supported' % (
                outcome_request.operation)
        return response.generate_response_xml()
    else:
        throw_oauth_error()
Beispiel #11
0
def grade_passback():
    outcome_request = OutcomeRequest.from_post_request(request)
    sourcedid = outcome_request.lis_result_sourcedid   
    consumer = ToolConsumer('test', 'secret')

    if True:  # TODO: Check oauth timestamp and nonce
        response = OutcomeResponse()
        response.message_ref_identifier = outcome_request.message_identifier
        response.operation = outcome_request.operation
        response.code_major = 'success'
        response.severity = 'status'

        if outcome_request.is_replace_request():
            response.description = 'Your prior score of 0 has been replaced with %s' %(outcome_request.score)
        elif outcome_request.is_read_request():
            response.description = 'Your score is .50'
            response.score = .50
        elif outcome_request.is_delete_request():
            response.description = 'Your score has been cleared'
        else:
            response.code_major = 'unsupported'
            response.severity = 'status'
            response.description = '%s is not supported' %(outcome_request.operation)

        print 'outcome is: ', outcome_request.score
        headers = { 'Content-Type': 'text/xml' }        
        #return response.generate_response_xml()
        return redirect(url_for('tool_config'))        
        #error_message = ''  #outcome_request.args.get('lti_errormsg')
        #message = ''  #outcome_request.args.get('lti_msg')
        #return render_template('tool_return.html', message=message, error_message=error_message)        
    else:
        print 'oauth error'
        throw_oauth_error()
def grade_passback():
    outcome_request = OutcomeRequest.from_post_request(request)
    sourcedid = outcome_request.lis_result_sourcedid
    consumer = ToolConsumer('test', 'secret')

    print "outcomes service url triggered"
    #    if consumer.is_valid_request(request):
    if True:

        # TODO: Check oauth timestamp
        # TODO: Check oauth nonce

        response = OutcomeResponse()
        response.message_ref_identifier = outcome_request.message_identifier
        response.operation = outcome_request.operation
        response.code_major = 'success'
        response.severity = 'status'

        if outcome_request.is_replace_request():
            response.description = 'Your old score of 0 has been replaced with %s' %(outcome_request.score)
            global outcome
            outcome = outcome_request.score
        elif outcome_request.is_read_request():
            response.description = 'Your score is 50'
            response.score = 50
        elif outcome_request.is_delete_request():
            response.description = 'Your score has been cleared'
        else:
            response.code_major = 'unsupported'
            response.severity = 'status'
            response.description = '%s is not supported' %(outcome_request.operation)
        return response.generate_response_xml()
    else:
        throw_oauth_error()