Browse Source

HUE-8768 [editor] cancel and close statements can error

Romain 5 years ago
parent
commit
4a74295c48

+ 2 - 2
desktop/libs/notebook/src/notebook/api.py

@@ -447,14 +447,14 @@ def get_logs(request):
   return JsonResponse(response)
 
 def _save_notebook(notebook, user):
-  if notebook['snippets'][0].get('connector') and notebook['snippets'][0]['connector'].get('dialect'):
+  if notebook['snippets'][0].get('connector') and notebook['snippets'][0]['connector'].get('dialect'):  # TODO Connector unification
     notebook_type = 'query-%(dialect)s' % notebook['snippets'][0]['connector']
   else:
     notebook_type = notebook.get('type', 'notebook')
 
   save_as = False
 
-  if notebook.get('parentSavedQueryUuid'): # We save into the original saved query, not into the query history
+  if notebook.get('parentSavedQueryUuid'):  # We save into the original saved query, not into the query history
     notebook_doc = Document2.objects.get_by_uuid(user=user, uuid=notebook['parentSavedQueryUuid'])
   elif notebook.get('id'):
     notebook_doc = Document2.objects.get(id=notebook['id'])

+ 1 - 1
desktop/libs/notebook/src/notebook/connectors/base.py

@@ -379,7 +379,7 @@ def get_api(request, snippet):
   if snippet.get('type') == 'report':
     snippet['type'] = 'impala'
 
-  if snippet.get('connector'):
+  if snippet.get('connector') and snippet['connector'].get('type'):  # TODO Connector unification
     connector_name = snippet['connector']['type']  # Ideally unify with name and nice_name
     snippet['type'] = connector_name
   else:

+ 13 - 3
desktop/libs/notebook/src/notebook/connectors/base_tests.py

@@ -26,7 +26,7 @@ from nose.tools import assert_equal, assert_true, assert_false
 from desktop.lib.django_test_util import make_logged_in_client
 from useradmin.models import User
 
-from notebook.connectors.base import Notebook
+from notebook.connectors.base import Notebook, get_api
 
 if sys.version_info[0] > 2:
   from unittest.mock import patch, Mock, MagicMock
@@ -41,6 +41,16 @@ class TestNotebook(object):
     self.user = User.objects.get(username="test")
 
 
+  def test_get_api(self):
+    request = Mock()
+    snippet = {
+      'connector': {'optimizer': 'api'},
+      'type': 'hive'  # Backward compatibility
+    }
+
+    get_api(request=request, snippet=snippet)
+
+
   def test_execute_and_wait(self):
     query = Notebook()
 
@@ -48,7 +58,7 @@ class TestNotebook(object):
     query.check_status = Mock(
       side_effect=check_status_side_effect
     )
-    request=Mock()
+    request = Mock()
 
     resp = query.execute_and_wait(request=request)
     assert_equal(1, resp['history_uuid'])
@@ -58,7 +68,7 @@ class TestNotebook(object):
   def test_check_status(self):
     query = Notebook()
 
-    request=Mock()
+    request = Mock()
     operation_id = Mock()
 
     with patch('notebook.api.Document2.objects.get_by_uuid') as get_by_uuid: