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())
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)
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')
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()
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()