Răsfoiți Sursa

[beeswax] Fix explain query test API and test_explain_query_i18n test

Romain Rigaux 12 ani în urmă
părinte
comite
0e1a003de2

+ 7 - 1
apps/beeswax/src/beeswax/test_base.py

@@ -25,8 +25,10 @@ import subprocess
 import time
 
 from nose.tools import assert_true, assert_false
+from django.core.urlresolvers import reverse
 from django.contrib.auth.models import User
 
+
 from desktop.lib.django_test_util import make_logged_in_client
 from desktop.lib.paths import get_run_root
 from desktop.lib.python_util import find_unused_port
@@ -254,7 +256,11 @@ def make_query(client, query, submission_type="Execute",
     parameters["file_resources-%d-_exists" % i] = 'True'
 
   kwargs.setdefault('follow', True)
-  response = client.post("/beeswax/execute/", parameters, **kwargs)
+
+  if submission_type == 'Explain':
+    response = client.post(reverse("beeswax:api_execute") + "?explain=true", parameters, **kwargs)
+  else:
+    response = client.post(reverse("beeswax:execute_query"), parameters, **kwargs)
 
   if wait:
     return wait_for_query_to_finish(client, response, max)

+ 4 - 2
apps/beeswax/src/beeswax/tests.py

@@ -392,12 +392,14 @@ for x in sys.stdin:
     wait_for_query_to_finish(c, response)
 
     response = _make_query(c, "SELECT SUM(foo) FROM test_explain", submission_type="Explain")
-    assert_true(response.context["explanation"])
+    explanation = json.loads(response.content)['explanation']
+    assert_true('ABSTRACT SYNTAX TREE' in explanation, explanation)
 
   def test_explain_query_i18n(self):
     query = u"SELECT foo FROM test_utf8 WHERE bar='%s'" % (unichr(200),)
     response = _make_query(self.client, query, submission_type="Explain")
-    assert_true(response.context['explanation'])
+    explanation = json.loads(response.content)['explanation']
+    assert_true('ABSTRACT SYNTAX TREE' in explanation, explanation)
 
   def test_query_i18n(self):
     # Test fails because HIVE_PLAN cannot be found and raises FileNotFoundException

+ 2 - 0
apps/beeswax/src/beeswax/views.py

@@ -340,6 +340,8 @@ Queries Views
 
 def execute_query(request, design_id=None):
   """
+  Deprecated except for testing I guess.
+
   View function for executing an arbitrary query.
   It understands the optional GET/POST params: