def test_score_outside_range(self):
        """
        Test score outside the range raises exception
        """
        data = copy(REQUEST_TEMPLATE_DEFAULTS)

        with self.assertRaises(LtiError):
            data['score'] = 10
            __, __, __, __ = parse_grade_xml_body(REQUEST_BODY_TEMPLATE_VALID.format(**data))

        with self.assertRaises(LtiError):
            data['score'] = -10
            __, __, __, __ = parse_grade_xml_body(REQUEST_BODY_TEMPLATE_VALID.format(**data))
    def test_score_outside_range(self):
        """
        Test score outside the range raises exception
        """
        data = copy(REQUEST_TEMPLATE_DEFAULTS)

        with self.assertRaises(LtiError):
            data['score'] = 10
            _, _, _, _ = parse_grade_xml_body(REQUEST_BODY_TEMPLATE_VALID.format(**data))

        with self.assertRaises(LtiError):
            data['score'] = -10
            _, _, _, _ = parse_grade_xml_body(REQUEST_BODY_TEMPLATE_VALID.format(**data))
 def test_missing_sourced_id(self):
     """
     Test missing <sourcedId> raises LtiError
     """
     with self.assertRaises(LtiError):
         __, __, __, __ = parse_grade_xml_body(
             REQUEST_BODY_TEMPLATE_MISSING_SOURCED_ID.format(
                 **REQUEST_TEMPLATE_DEFAULTS))
 def test_missing_body(self):
     """
     Test missing <imsx_POXBody> raises LtiError
     """
     with self.assertRaises(LtiError):
         __, __, __, __ = parse_grade_xml_body(
             REQUEST_BODY_TEMPLATE_MISSING_BODY.format(
                 **REQUEST_TEMPLATE_DEFAULTS))
 def test_missing_action(self):
     """
     Test missing <replaceResultRequest> raises LtiError
     """
     with self.assertRaises(LtiError):
         __, __, __, __ = parse_grade_xml_body(
             REQUEST_BODY_TEMPLATE_MISSING_ACTION.format(
                 **REQUEST_TEMPLATE_DEFAULTS))
 def test_missing_score(self):
     """
     Test missing score <textString> raises LtiError
     """
     with self.assertRaises(LtiError):
         __, __, __, __ = parse_grade_xml_body(
             REQUEST_BODY_TEMPLATE_MISSING_SCORE.format(
                 **REQUEST_TEMPLATE_DEFAULTS))
 def test_missing_score(self):
     """
     Test missing score <textString> raises LtiError
     """
     with self.assertRaises(LtiError):
         __, __, __, __ = parse_grade_xml_body(
             REQUEST_BODY_TEMPLATE_MISSING_SCORE.format(**REQUEST_TEMPLATE_DEFAULTS)
         )
 def test_missing_action(self):
     """
     Test missing <replaceResultRequest> raises LtiError
     """
     with self.assertRaises(LtiError):
         __, __, __, __ = parse_grade_xml_body(
             REQUEST_BODY_TEMPLATE_MISSING_ACTION.format(**REQUEST_TEMPLATE_DEFAULTS)
         )
 def test_missing_body(self):
     """
     Test missing <imsx_POXBody> raises LtiError
     """
     with self.assertRaises(LtiError):
         __, __, __, __ = parse_grade_xml_body(
             REQUEST_BODY_TEMPLATE_MISSING_BODY.format(**REQUEST_TEMPLATE_DEFAULTS)
         )
 def test_missing_sourced_id(self):
     """
     Test missing <sourcedId> raises LtiError
     """
     with self.assertRaises(LtiError):
         __, __, __, __ = parse_grade_xml_body(
             REQUEST_BODY_TEMPLATE_MISSING_SOURCED_ID.format(**REQUEST_TEMPLATE_DEFAULTS)
         )
 def test_missing_msg_id(self):
     """
     Test missing <imsx_messageIdentifier> raises LtiError
     """
     with self.assertRaises(LtiError):
         __, __, __, __ = parse_grade_xml_body(
             REQUEST_BODY_TEMPLATE_MISSING_MSG_ID.format(**REQUEST_TEMPLATE_DEFAULTS)
         )
示例#12
0
 def test_missing_msg_id(self):
     """
     Test missing <imsx_messageIdentifier> raises LtiError
     """
     with self.assertRaises(LtiError):
         __, __, __, __ = parse_grade_xml_body(
             REQUEST_BODY_TEMPLATE_MISSING_MSG_ID.format(
                 **REQUEST_TEMPLATE_DEFAULTS))
    def test_invalid_score(self):
        """
        Test non-float score raises exception
        """
        data = copy(REQUEST_TEMPLATE_DEFAULTS)
        data['score'] = '1,0'

        with self.assertRaises(Exception):
            _, _, _, _ = parse_grade_xml_body(REQUEST_BODY_TEMPLATE_VALID.format(**data))
    def test_invalid_score(self):
        """
        Test non-float score raises exception
        """
        data = copy(REQUEST_TEMPLATE_DEFAULTS)
        data['score'] = '1,0'

        with self.assertRaises(Exception):
            __, __, __, __ = parse_grade_xml_body(REQUEST_BODY_TEMPLATE_VALID.format(**data))
示例#15
0
    def test_valid_request_body(self):
        """
        Test correct values returned on valid request body
        """
        msg_id, sourced_id, score, action = parse_grade_xml_body(
            REQUEST_BODY_TEMPLATE_VALID.format(**REQUEST_TEMPLATE_DEFAULTS))

        self.assertEqual(msg_id, REQUEST_TEMPLATE_DEFAULTS['msg_id'])
        self.assertEqual(sourced_id, REQUEST_TEMPLATE_DEFAULTS['sourced_id'])
        self.assertEqual(score, REQUEST_TEMPLATE_DEFAULTS['score'])
        self.assertEqual(action, REQUEST_TEMPLATE_DEFAULTS['action'])
    def test_valid_request_body(self):
        """
        Test correct values returned on valid request body
        """
        msg_id, sourced_id, score, action = parse_grade_xml_body(
            REQUEST_BODY_TEMPLATE_VALID.format(**REQUEST_TEMPLATE_DEFAULTS)
        )

        self.assertEqual(msg_id, REQUEST_TEMPLATE_DEFAULTS['msg_id'])
        self.assertEqual(sourced_id, REQUEST_TEMPLATE_DEFAULTS['sourced_id'])
        self.assertEqual(score, REQUEST_TEMPLATE_DEFAULTS['score'])
        self.assertEqual(action, REQUEST_TEMPLATE_DEFAULTS['action'])
示例#17
0
    def test_upper_score_boundary(self):
        """
        Test correct values returned on valid request body with a
        score that matches the upper boundary of allowed scores
        """
        data = copy(REQUEST_TEMPLATE_DEFAULTS)
        data['score'] = 1.0

        msg_id, sourced_id, score, action = parse_grade_xml_body(
            REQUEST_BODY_TEMPLATE_VALID.format(**data))

        self.assertEqual(msg_id, data['msg_id'])
        self.assertEqual(sourced_id, data['sourced_id'])
        self.assertEqual(score, data['score'])
        self.assertEqual(action, data['action'])
    def test_upper_score_boundary(self):
        """
        Test correct values returned on valid request body with a
        score that matches the upper boundary of allowed scores
        """
        data = copy(REQUEST_TEMPLATE_DEFAULTS)
        data['score'] = 1.0

        msg_id, sourced_id, score, action = parse_grade_xml_body(
            REQUEST_BODY_TEMPLATE_VALID.format(**data)
        )

        self.assertEqual(msg_id, data['msg_id'])
        self.assertEqual(sourced_id, data['sourced_id'])
        self.assertEqual(score, data['score'])
        self.assertEqual(action, data['action'])
示例#19
0
    def test_string_with_unicode_chars(self):
        """
        Test that system is tolerant to data which has unicode chars in
        strings which are not specified as unicode.
        """
        request_body_template = textwrap.dedent("""
            <?xml version="1.0" encoding="UTF-8"?>
            <imsx_POXEnvelopeRequest xmlns="http://www.imsglobal.org/services/ltiv1p1/xsd/imsoms_v1p0">
              <imsx_POXHeader>
                <imsx_POXRequestHeaderInfo>
                  <imsx_version>V1.0</imsx_version>
                  <imsx_messageIdentifier>ţéšţ_message_id</imsx_messageIdentifier>
                </imsx_POXRequestHeaderInfo>
              </imsx_POXHeader>
              <imsx_POXBody>
                <ţéšţ_action>
                  <resultRecord>
                    <sourcedGUID>
                      <sourcedId>ţéšţ_sourced_id</sourcedId>
                    </sourcedGUID>
                    <result>
                      <resultScore>
                        <language>en-us</language>
                        <textString>1.0</textString>
                      </resultScore>
                    </result>
                  </resultRecord>
                </ţéšţ_action>
              </imsx_POXBody>
            </imsx_POXEnvelopeRequest>
        """)

        msg_id, sourced_id, score, action = parse_grade_xml_body(
            request_body_template)

        self.assertEqual(msg_id, u'ţéšţ_message_id')
        self.assertEqual(sourced_id, u'ţéšţ_sourced_id')
        self.assertEqual(score, 1.0)
        self.assertEqual(action, u'ţéšţ_action')
示例#20
0
 def test_invalid_xml(self):
     """
     Test invalid xml raises exception
     """
     with self.assertRaises(LtiError):
         __, __, __, __ = parse_grade_xml_body('<xml>')
示例#21
0
 def test_empty_xml(self):
     """
     Test empty xml raises exception
     """
     with self.assertRaises(LtiError):
         __, __, __, __ = parse_grade_xml_body('')
 def test_empty_xml(self):
     """
     Test empty xml raises exception
     """
     with self.assertRaises(LtiError):
         __, __, __, __ = parse_grade_xml_body('')
 def test_invalid_xml(self):
     """
     Test invalid xml raises exception
     """
     with self.assertRaises(LtiError):
         __, __, __, __ = parse_grade_xml_body('<xml>')