[FIX] P3: JSON is an object<->text encoding

It doesn't load bytes, and it doesn't dump to bytes.
This commit is contained in:
Xavier Morel
2017-08-20 23:25:54 +02:00
committed by Olivier Dony
parent bc7dce254d
commit b93613066f
3 changed files with 6 additions and 7 deletions
+3 -4
View File
@@ -499,13 +499,12 @@ class Slide(models.Model):
try:
response = requests.get(base_url, params=data)
response.raise_for_status()
content = response.content
if content_type == 'json':
result['values'] = json.loads(content)
result['values'] = response.json()
elif content_type in ('image', 'pdf'):
result['values'] = base64.b64encode(content)
result['values'] = base64.b64encode(response.content)
else:
result['values'] = content
result['values'] = response.content
except requests.exceptions.HTTPError as e:
result['error'] = e.response.content
except requests.exceptions.ConnectionError as e:
+2 -2
View File
@@ -965,7 +965,7 @@ class test_o2m_multiple(ImporterCase):
class test_realworld(common.TransactionCase):
def test_bigfile(self):
data = json.loads(pkgutil.get_data(self.__module__, 'contacts_big.json'))
data = json.loads(pkgutil.get_data(self.__module__, 'contacts_big.json').decode('utf-8'))
result = self.env['res.partner'].load(['name', 'mobile', 'email', 'image'], data)
self.assertFalse(result['messages'])
self.assertEqual(len(result['ids']), len(data))
@@ -973,7 +973,7 @@ class test_realworld(common.TransactionCase):
def test_backlink(self):
fnames = ["name", "type", "street", "city", "country_id", "category_id",
"supplier", "customer", "is_company", "parent_id"]
data = json.loads(pkgutil.get_data(self.__module__, 'contacts.json'))
data = json.loads(pkgutil.get_data(self.__module__, 'contacts.json').decode('utf-8'))
result = self.env['res.partner'].load(fnames, data)
self.assertFalse(result['messages'])
self.assertEqual(len(result['ids']), len(data))
+1 -1
View File
@@ -597,7 +597,7 @@ class JsonRequest(WebRequest):
request = self.session.pop('jsonp_request_%s' % (request_id,), '{}')
else:
# regular jsonrpc2
request = self.httprequest.stream.read()
request = self.httprequest.stream.read().decode(self.httprequest.charset)
# Read POST content or POST Form Data named "request"
try: