|
| 1 | +# -*- coding: utf-8 -*- |
1 | 2 | """ |
2 | 3 | Unit tests for lti_consumer.outcomes module |
3 | 4 | """ |
@@ -288,6 +289,45 @@ def test_invalid_xml(self): |
288 | 289 | with self.assertRaises(LtiError): |
289 | 290 | __, __, __, __ = parse_grade_xml_body('<xml>') |
290 | 291 |
|
| 292 | + def test_string_with_unicode_chars(self): |
| 293 | + """ |
| 294 | + Test that system is tolerant to data which has unicode chars in |
| 295 | + strings which are not specified as unicode. |
| 296 | + """ |
| 297 | + request_body_template = textwrap.dedent(""" |
| 298 | + <?xml version="1.0" encoding="UTF-8"?> |
| 299 | + <imsx_POXEnvelopeRequest xmlns="http://www.imsglobal.org/services/ltiv1p1/xsd/imsoms_v1p0"> |
| 300 | + <imsx_POXHeader> |
| 301 | + <imsx_POXRequestHeaderInfo> |
| 302 | + <imsx_version>V1.0</imsx_version> |
| 303 | + <imsx_messageIdentifier>ţéšţ_message_id</imsx_messageIdentifier> |
| 304 | + </imsx_POXRequestHeaderInfo> |
| 305 | + </imsx_POXHeader> |
| 306 | + <imsx_POXBody> |
| 307 | + <ţéšţ_action> |
| 308 | + <resultRecord> |
| 309 | + <sourcedGUID> |
| 310 | + <sourcedId>ţéšţ_sourced_id</sourcedId> |
| 311 | + </sourcedGUID> |
| 312 | + <result> |
| 313 | + <resultScore> |
| 314 | + <language>en-us</language> |
| 315 | + <textString>1.0</textString> |
| 316 | + </resultScore> |
| 317 | + </result> |
| 318 | + </resultRecord> |
| 319 | + </ţéšţ_action> |
| 320 | + </imsx_POXBody> |
| 321 | + </imsx_POXEnvelopeRequest> |
| 322 | + """) |
| 323 | + |
| 324 | + msg_id, sourced_id, score, action = parse_grade_xml_body(request_body_template) |
| 325 | + |
| 326 | + self.assertEqual(msg_id, u'ţéšţ_message_id') |
| 327 | + self.assertEqual(sourced_id, u'ţéšţ_sourced_id') |
| 328 | + self.assertEqual(score, 1.0) |
| 329 | + self.assertEqual(action, u'ţéšţ_action') |
| 330 | + |
291 | 331 |
|
292 | 332 | class TestOutcomeService(TestLtiConsumerXBlock): |
293 | 333 | """ |
|
0 commit comments