Răsfoiți Sursa

HUE-4526 [oozie] Add tests to the generation of workflows

Romain Rigaux 9 ani în urmă
părinte
comite
cd5de7b4c4
2 a modificat fișierele cu 15 adăugiri și 21 ștergeri
  1. 2 11
      apps/oozie/src/oozie/models2.py
  2. 13 10
      apps/oozie/src/oozie/models2_tests.py

+ 2 - 11
apps/oozie/src/oozie/models2.py

@@ -2979,9 +2979,7 @@ class WorkflowBuilder():
       nodes.append(node)
 
     workflow_doc = self.get_workflow(nodes, name, document.uuid, user, managed=managed)
-
-    for document in documents:
-      workflow_doc.dependencies.add(document)
+    workflow_doc.dependencies.add(*documents)
 
     return workflow_doc
 
@@ -3135,15 +3133,8 @@ class WorkflowBuilder():
       _prev_node['children'][0]['to'] = node['id'] # We link nodes
       _prev_node = node
 
-#     data = json.dumps(data)
-
-
-    workflow_doc = _save_workflow(data['workflow'], {}, user,) # # from oozie.views.editor2 import _save_workflow
+    workflow_doc = _save_workflow(data['workflow'], {}, user)
     workflow_doc.is_managed = managed
     workflow_doc.save()
-# is_managed
-
-#     workflow_doc = Document2.objects.create(name=name, type='oozie-workflow2', owner=user, data=data, is_managed=managed)
-#     Document.objects.link(workflow_doc, owner=workflow_doc.owner, name=workflow_doc.name, description=workflow_doc.description, extra='workflow2')
 
     return workflow_doc

+ 13 - 10
apps/oozie/src/oozie/models2_tests.py

@@ -18,6 +18,7 @@
 
 import json
 import logging
+import re
 
 from django.contrib.auth.models import User
 from django.core.urlresolvers import reverse
@@ -964,33 +965,35 @@ class TestModelAPI(OozieMockBase):
     super(TestModelAPI, self).setUp()
     self.wf = Workflow()
 
-    self.client_not_me = make_logged_in_client(username="not_perm_user", groupname="default", recreate=True,
-                                               is_superuser=False)
+    self.client_not_me = make_logged_in_client(username="not_perm_user", groupname="default", recreate=True, is_superuser=False)
     self.user_not_me = User.objects.get(username="not_perm_user")
 
 
   def test_gen_workflow_from_document(self):
     notebook = make_notebook(name='Browse', editor_type='hive', statement='SHOW TABLES', status='ready')
-    notebook_doc = _save_notebook(notebook, self.user)
+    notebook_doc, save_as = _save_notebook(notebook.get_data(), self.user)
 
     workflow_doc = WorkflowBuilder().create_workflow(document=notebook_doc, user=self.user, managed=True)
-    
+
     workflow = Workflow(document=workflow_doc, user=self.user)
 
     _data = workflow.get_data()
-    assert_equal(len(_data['nodes']), 4)
+    assert_equal(len(_data['workflow']['nodes']), 4)
 
 
   def test_gen_workflow_from_documents(self):
     notebook = make_notebook(name='Browse', editor_type='hive', statement='SHOW TABLES', status='ready')
-    notebook_doc = _save_notebook(notebook, self.user)
+    notebook_doc, save_as = _save_notebook(notebook.get_data(), self.user)
 
     notebook2 = make_notebook(name='Browse', editor_type='hive', statement='SHOW TABLES', status='ready')
-    notebook2_doc = _save_notebook(notebook2, self.user)
+    notebook2_doc, save_as = _save_notebook(notebook2.get_data(), self.user)
+
+    workflow_doc = WorkflowBuilder().create_workflow(documents=[notebook_doc, notebook2_doc], user=self.user, managed=True)
 
-    workflow_doc = WorkflowBuilder().create_workflow(documents=[notebook_doc, notebook_doc2], user=self.user, managed=True)
-    
     workflow = Workflow(document=workflow_doc, user=self.user)
 
     _data = workflow.get_data()
-    assert_equal(len(_data['nodes']), 5)
+
+    assert_equal(len(_data['workflow']['nodes']), 5)
+    assert_equal(len(re.findall('<ok to="doc-hive-', workflow.to_xml())), 1, workflow.to_xml())
+    assert_equal(len(re.findall('<action name="doc-hive->', workflow.to_xml())), 2, workflow.to_xml())