瀏覽代碼

HUE-8758 [editor] Refactor to move out the check_status call

Romain 5 年之前
父節點
當前提交
afacea8ac2

+ 0 - 3
apps/beeswax/src/beeswax/management/commands/beeswax_install_examples_tests.py

@@ -23,7 +23,6 @@ from nose.tools import assert_equal, assert_not_equal, assert_true, assert_false
 
 from desktop.auth.backend import rewrite_user
 from desktop.lib.django_test_util import make_logged_in_client
-from desktop.lib.test_utils import add_to_group, grant_access
 from desktop.models import Document2
 from useradmin.models import User, install_sample_user
 
@@ -88,9 +87,7 @@ class TestTransactionalTables():
 
   def setUp(self):
     self.client = make_logged_in_client(username="test", groupname="default", recreate=True, is_superuser=False)
-
     self.user = rewrite_user(User.objects.get(username="test"))
-    grant_access("test", "default", "notebook")
 
 
   def test_load_sample_07_with_concurrency_support(self):

+ 19 - 11
desktop/libs/notebook/src/notebook/api.py

@@ -238,20 +238,28 @@ def check_status(request):
   notebook = json.loads(request.POST.get('notebook', '{}'))
   snippet = json.loads(request.POST.get('snippet', '{}'))
 
-  if operation_id or not snippet: # To unify with _get_snippet
+  with opentracing.tracer.start_span('notebook-check_status') as span:
+    span.set_tag('user-id', request.user.username)
+    span.set_tag(
+      'query-id',
+      snippet['result']['handle']['guid'] if snippet['result'].get('handle') and snippet['result']['handle'].get('guid') else None
+    )
+
+    response = _check_status(request, notebook=notebook, snippet=snippet, operation_id=operation_id)
+
+  return JsonResponse(response)
+
+
+def _check_status(request, notebook=None, snippet=None, operation_id=None):
+  response = {'status': -1}
+
+  if operation_id or not snippet:  # To unify with _get_snippet
     nb_doc = Document2.objects.get_by_uuid(user=request.user, uuid=operation_id or notebook['uuid'])
-    notebook = Notebook(document=nb_doc).get_data() # Used below
+    notebook = Notebook(document=nb_doc).get_data()  # Used below
     snippet = notebook['snippets'][0]
 
   try:
-    with opentracing.tracer.start_span('notebook-check_status') as span:
-      span.set_tag('user-id', request.user.username)
-      span.set_tag(
-        'query-id',
-        snippet['result']['handle']['guid'] if snippet['result'].get('handle') and snippet['result']['handle'].get('guid') else None
-      )
-      response['query_status'] = get_api(request, snippet).check_status(notebook, snippet)
-
+    response['query_status'] = get_api(request, snippet).check_status(notebook, snippet)
     response['status'] = 0
   except SessionExpired:
     response['status'] = 'expired'
@@ -282,7 +290,7 @@ def check_status(request):
           nb_doc.update_data(nb)
           nb_doc.save()
 
-  return JsonResponse(response)
+  return response
 
 
 @require_POST

+ 0 - 2
desktop/libs/notebook/src/notebook/connectors/base_tests.py

@@ -46,13 +46,11 @@ class TestNotebook(object):
     query = Notebook()
     query.execute = Mock(return_value={'history_uuid': 1})
 
-
     query.check_status = Mock(
       side_effect=check_status_side_effect
     )
     request=Mock()
 
-
     resp = query.execute_and_wait(request=request)
     assert_equal(1, resp['uuid'])
     assert_equal(2, query.check_status.call_count)