Commit 5a0d4baf authored by Ayush Tiwari's avatar Ayush Tiwari

erp5_data_notebook bt5: Add exception handling while serializing result

parent f807b0b6
......@@ -61,12 +61,9 @@
</item>
<item>
<key> <string>_body</string> </key>
<value> <string>from Products.CMFActivity.ActiveResult import ActiveResult\n
import json\n
<value> <string>import json\n
\n
selection_id = \'python_shell_selection\'\n
portal = context.getPortalObject()\n
portal_selections = portal.portal_selections\n
\n
# The boolean values via requests are received as \n
request_reference = {\'True\': True, \'False\': False}.get(request_reference, False)\n
......@@ -129,9 +126,20 @@ result = {\n
u\'status\': status\n
}\n
\n
data_notebook_message.edit(notebook_code_result=code_result)\n
\n
return json.dumps(result)\n
try:\n
serialized_result = json.dumps(result)\n
data_notebook_message.edit(notebook_code_result=code_result)\n
except UnicodeDecodeError:\n
result = {\n
u\'code_result\': None,\n
u\'ename\': u\'UnicodeDecodeError\',\n
u\'evalue\': None,\n
u\'traceback\': None,\n
u\'status\': u\'error\'\n
}\n
serialized_result = json.dumps(result)\n
\n
return serialized_result\n
</string> </value>
</item>
<item>
......
......@@ -39,7 +39,7 @@ class TestExecuteJupyter(SecurityTestCase):
"""
self.notebook_module = self.portal.getDefaultModule(portal_type='Data Notebook')
self.assertTrue(self.notebook_module is not None)
# Create user to be used in tests
user_folder = self.getPortal().acl_users
user_folder._doAddUser('dev_user', '', ['Manager',], [])
......@@ -96,7 +96,7 @@ class TestExecuteJupyter(SecurityTestCase):
result_title = [obj.getTitle() for obj in notebook_search_result]
if result_title:
self.assertEquals(notebook.getTitle(), result_title[0])
def testUserCanCreateNotebookWithCode(self):
"""
Test if user can create Data Notebook Message object or not
......@@ -105,8 +105,8 @@ class TestExecuteJupyter(SecurityTestCase):
notebook = self._newNotebook(reference='new_notebook_with_code')
self.tic()
notebook_code='some_random_invalid_notebook_code %s' % time.time()
notebook_code='some_random_invalid_notebook_code %s' % time.time()
self._newNotebookMessage(
notebook_module=notebook,
notebook_code=notebook_code
......@@ -155,7 +155,7 @@ class TestExecuteJupyter(SecurityTestCase):
python_expression = "print 52"
reference = 'Test.Notebook.AddNewNotebookMessage %s' % time.time()
title = 'Test NB Title %s' % time.time()
# Calling the function twice, first to create a new notebook and then
# sending python_expression to check if it adds to the same notebook
portal.Base_executeJupyter(title=title, reference=reference)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment