Prechádzať zdrojové kódy

HUE-4897 [core] Import document call should provide information about the import

Jenny Kim 9 rokov pred
rodič
commit
d3cf3f7

+ 15 - 1
desktop/core/src/desktop/api2.py

@@ -468,7 +468,21 @@ def import_documents(request):
     if request.POST.get('redirect'):
       return redirect(request.POST.get('redirect'))
     else:
-      return JsonResponse({'message': stdout.getvalue()})
+      return JsonResponse({
+        'status': 0,
+        'message': stdout.getvalue(),
+        'count': len(documents),
+        'created_count': len([doc for doc in documents if doc['pk'] is None]),
+        'updated_count': len([doc for doc in documents if doc['pk'] is not None]),
+        'username': request.user.username,
+        'documents': [
+          dict([
+            ('name', doc['fields']['name']),
+            ('uuid', doc['fields']['uuid']),
+            ('type', doc['fields']['type']),
+            ('owner', doc['fields']['owner'][0])
+          ]) for doc in docs]
+      })
   except Exception, e:
     LOG.error('Failed to run loaddata command in import_documents:\n %s' % stdout.getvalue())
     return JsonResponse({'status': -1, 'message': smart_str(e)})

+ 21 - 0
desktop/core/src/desktop/tests_doc2.py

@@ -930,6 +930,19 @@ class TestDocument2ImportExport(object):
 
     assert_true('message' in data, data)
     assert_true('Installed 1 object' in data['message'], data)
+    assert_true('count' in data)
+    assert_equal(1, data['count'])
+    assert_true('created_count' in data)
+    assert_equal(0, data['created_count'])
+    assert_true('updated_count' in data)
+    assert_equal(1, data['updated_count'])
+    assert_true('documents' in data)
+    assert_true('name' in data['documents'][0])
+    assert_equal('query.sql', data['documents'][0]['name'])
+    assert_true('type' in data['documents'][0])
+    assert_equal('query-hive', data['documents'][0]['type'])
+    assert_true('owner' in data['documents'][0])
+    assert_equal('perm_user', data['documents'][0]['owner'])
 
     assert_equal(1, Document2.objects.filter(name='query.sql').count())
     imported_doc = Document2.objects.get(name='query.sql')
@@ -968,3 +981,11 @@ class TestDocument2ImportExport(object):
     assert_true(owned_query.uuid != imported_doc.uuid)
     assert_equal(self.user_not_me, imported_doc.owner)
     assert_equal(self.not_me_home_dir.uuid, imported_doc.parent_directory.uuid)
+
+    data = json.loads(response.content)
+    assert_true('count' in data)
+    assert_equal(1, data['count'])
+    assert_true('created_count' in data)
+    assert_equal(1, data['created_count'])
+    assert_true('updated_count' in data)
+    assert_equal(0, data['updated_count'])