Merge "Enforces unicode decoding of data"

This commit is contained in:
Zuul 2019-09-02 11:12:19 +00:00 committed by Gerrit Code Review
commit de7f249adb
2 changed files with 11 additions and 11 deletions

View File

@ -203,16 +203,16 @@ class TemplateForm(forms.SelfHandlingForm):
log_template_name = files[upload_str].name
LOG.info('got upload %s', log_template_name)
tpl = files[upload_str].read()
if tpl.startswith('{'):
try:
tpl = files[upload_str].read().decode('utf-8')
if tpl.startswith('{'):
json.loads(tpl)
cleaned[data_str] = tpl
except Exception as e:
msg = _('There was a problem parsing the'
' %(prefix)s: %(error)s')
msg = msg % {'prefix': prefix, 'error': six.text_type(e)}
raise forms.ValidationError(msg)
cleaned[data_str] = tpl
# URL handler
elif url and (has_upload or data):

View File

@ -918,7 +918,7 @@ class TemplateFormTests(test.TestCase):
}
json_str = '{notvalidjson::::::json/////json'
files = {'template_upload':
self.SimpleFile('template_name', json_str)}
self.SimpleFile('template_name', json_str.encode('utf-8'))}
self.assertRaises(
exceptions.ValidationError,
@ -937,7 +937,7 @@ class TemplateFormTests(test.TestCase):
json_str = '{"isvalid":"json"}'
files = {'template_upload':
self.SimpleFile('template_name', json_str)}
self.SimpleFile('template_name', json_str.encode('utf-8'))}
t.clean_uploaded_files('template', 'template', precleaned, files)
self.assertEqual(