Skip to content

Commit

Permalink
fix survey answer not applicable problem openedx#2483 (openedx#2489)
Browse files Browse the repository at this point in the history
  • Loading branch information
kitamura-toshiyuki authored and suzukiyuzs committed May 18, 2018
1 parent 73b12b3 commit 5a232cb
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 3 deletions.
22 changes: 20 additions & 2 deletions lms/djangoapps/ga_survey/tests/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,15 @@ def setUp(self):
self.course_id = CourseLocator.from_string('edX/test/course1')
self.unit_id = '22222222222222222222222222222222'
self.survey_name = 'survey #2'
self.survey_answer = '{"Q1": "1", "Q2": ["2", "3"], "Q3": "test"}'
self.survey_answer = u'{"Q1": "1", "Q2": ["2", "3"], "Q3": "\U00000053\U00000054\U00000041\U00000052' \
u'\U00000054\U00002600\U00000074\U00000065\U00000073\U00000074\U0001F600\U00000074' \
u'\U00000065\U00000073\U00000074\U0002000B\U00000074\U00000065\U00000073\U00000074' \
u'\U0001F1EF\U0001F1F5\U00000074\U00000065\U00000073\U00000074\U0001F3F4\U000E0067' \
u'\U000E0062\U000E0065\U000E006E\U000E0067\U000E007F\U00000074\U00000065\U00000073' \
u'\U00000074\U0001F468\U0000200D\U0001F469\U0000200D\U0001F467\U0000200D\U0001F466' \
u'\U00000045\U0000004E\U00000044"}'
self.survey_answer = self.survey_answer.encode('utf-8')
self.survey_answer_expected_dict = json.loads(self.survey_answer)

def _post_as_ajax(self, path, data):
return self.request_factory.post(path, urllib.urlencode(data), content_type='application/json')
Expand Down Expand Up @@ -167,7 +175,17 @@ def test_survey_ajax_success(self):
)
self.assertEquals(len(submissions), 1)
self.assertEquals(submissions[0].survey_name, self.survey_name)
self.assertEquals(submissions[0].survey_answer, self.survey_answer)

ans_dict = submissions[0].get_survey_answer()
keyset = ans_dict.keys()
keys = sorted(keyset)
self.assertEquals(len(keys), 3)
self.assertEquals(len(ans_dict), 3)
self.assertEquals(len(self.survey_answer_expected_dict), 3)
for key in keys:
value = ans_dict.get(key, 'N/A')
value_expected = self.survey_answer_expected_dict.get(key, 'N/A')
self.assertEquals(value, value_expected)

def test_survey_ajax_fail_when_already_submitted(self):
"""Ensures that /survey_ajax/ fails when survey_submission already exists"""
Expand Down
3 changes: 2 additions & 1 deletion lms/djangoapps/ga_survey/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,8 @@ def survey_ajax(request):
log.warning("Illegal parameter. survey_answer=%s" % survey_answer)
raise Http404
try:
json.loads(survey_answer)
# Unicode escape the survey answer.
survey_answer = json.dumps(json.loads(survey_answer))
except:
log.warning("Illegal parameter. survey_answer=%s" % survey_answer)
raise Http404
Expand Down

0 comments on commit 5a232cb

Please sign in to comment.