Browse Source

HUE-5988 [metastore] Fix old test issue uncovered in API revamp

Romain Rigaux 8 năm trước cách đây
mục cha
commit
0f123520d5

+ 8 - 4
apps/metastore/src/metastore/tests.py

@@ -31,7 +31,7 @@ from desktop.lib.django_test_util import make_logged_in_client, assert_equal_mod
 from desktop.lib.test_utils import add_permission, grant_access
 from hadoop.pseudo_hdfs4 import is_live_cluster
 from metastore import parser
-from useradmin.models import HuePermission, GroupPermission, group_has_permission
+from useradmin.models import HuePermission, GroupPermission
 
 from beeswax.conf import LIST_PARTITIONS_LIMIT
 from beeswax.views import collapse_whitespace
@@ -313,11 +313,15 @@ class TestMetastoreWithHadoop(BeeswaxSampleProvider):
     resp = self.client.get("/metastore/table/%s/test/load" % self.db_name, follow=True)
     assert_true('Path' in resp.content)
 
-    data_path = '%(prefix)s/tmp/foo' % {'prefix': self.cluster.fs_prefix}
+    data_dir = '%(prefix)s/tmp' % {'prefix': self.cluster.fs_prefix}
+    data_path = data_dir + '/foo'
+    self.cluster.fs.mkdir(data_dir)
+    self.cluster.fs.create(data_path, data='123')
 
     # Try the submission
-    self.client.post("/metastore/table/%s/test/load" % self.db_name, {'path': data_path, 'overwrite': True}, follow=True)
-    query = QueryHistory.objects.latest('id')
+    response = self.client.post("/metastore/table/%s/test/load" % self.db_name, {'path': data_path, 'overwrite': True}, follow=True)
+    data = json.loads(response.content)
+    query = QueryHistory.objects.get(id=data['query_history_id'])
 
     assert_equal_mod_whitespace("LOAD DATA INPATH '%(data_path)s' OVERWRITE INTO TABLE `%(db)s`.`test`" % {'data_path': data_path, 'db': self.db_name}, query.query)
 

+ 2 - 1
apps/metastore/src/metastore/views.py

@@ -445,7 +445,7 @@ def load_table(request, database, table):
         form_data = {
           'path': load_form.cleaned_data['path'],
           'overwrite': load_form.cleaned_data['overwrite'],
-          'partition_columns': [(column_name, load_form.cleaned_data[key]) for key, column_name in load_form.cleaned_data['partition_columns'].iteritems()],
+          'partition_columns': [(column_name, load_form.cleaned_data[key]) for key, column_name in load_form.partition_columns.iteritems()],
         }
         query_history = db.load_data(database, table.name, form_data, design, generate_ddl_only=generate_ddl_only)
         if generate_ddl_only:
@@ -463,6 +463,7 @@ def load_table(request, database, table):
           url = reverse('beeswax:watch_query_history', kwargs={'query_history_id': query_history.id}) + '?on_success_url=' + on_success_url
           response['status'] = 0
           response['data'] = url
+          response['query_history_id'] = query_history.id
       except QueryError, ex:
         response['status'] = 1
         response['data'] = _("Can't load the data: ") + ex.message