Browse Source

[all] Fix tests that broke with the new unique constraints

Erick Tryzelaar 10 years ago
parent
commit
c74cc3f493

+ 6 - 3
apps/beeswax/src/beeswax/views.py

@@ -187,9 +187,12 @@ def clone_design(request, design_id):
 
   copy = design.clone(request.user)
   copy.save()
-  copy_doc = design.doc.get().copy(owner=request.user)
-  copy.doc.all().delete()
-  copy.doc.add(copy_doc)
+
+  copy_doc = Document.objects.link(copy,
+      owner=copy.owner,
+      name=copy.name,
+      description=copy.desc,
+      extra=copy.type)
 
   messages.info(request, _('Copied design: %(name)s') % {'name': design.name})
 

+ 15 - 6
apps/oozie/src/oozie/models.py

@@ -359,8 +359,6 @@ class Workflow(Job):
     else:
       owner = self.owner
 
-    copy_doc = self.doc.get().copy(name=name, owner=owner)
-
     copy = self
     copy.pk = None
     copy.id = None
@@ -369,6 +367,11 @@ class Workflow(Job):
     copy.owner = owner
     copy.save()
 
+    copy_doc = Document.objects.link(copy,
+        owner=copy.owner,
+        name=copy.name,
+        description=copy.description)
+
     copy.doc.all().delete()
     copy.doc.add(copy_doc)
 
@@ -1445,8 +1448,6 @@ class Coordinator(Job):
     else:
       owner = self.owner
 
-    copy_doc = self.doc.get().copy(name=name, owner=owner)
-
     copy = self
     copy.pk = None
     copy.id = None
@@ -1455,6 +1456,11 @@ class Coordinator(Job):
     copy.owner = owner
     copy.save()
 
+    copy_doc = Document.objects.link(copy,
+        owner=copy.owner,
+        name=copy.name,
+        description=copy.description)
+
     copy.doc.all().delete()
     copy.doc.add(copy_doc)
 
@@ -1781,8 +1787,6 @@ class Bundle(Job):
     else:
       owner = self.owner
 
-    copy_doc = self.doc.get().copy(name=name, owner=owner)
-
     copy = self
     copy.pk = None
     copy.id = None
@@ -1791,6 +1795,11 @@ class Bundle(Job):
     copy.owner = owner
     copy.save()
 
+    copy_doc = Document.objects.link(copy,
+        owner=copy.owner,
+        name=copy.name,
+        description=copy.description)
+
     copy.doc.all().delete()
     copy.doc.add(copy_doc)
 

+ 9 - 4
apps/oozie/src/oozie/tests.py

@@ -45,7 +45,7 @@ from liboozie.types import WorkflowList, Workflow as OozieWorkflow, Coordinator
   Bundle as OozieBundle, CoordinatorList, WorkflowAction, BundleList
 
 from oozie.conf import ENABLE_CRON_SCHEDULING, ENABLE_V2
-from oozie.models import Workflow, Node, Kill, Link, Job, Coordinator, History,\
+from oozie.models import Dataset, Workflow, Node, Kill, Link, Job, Coordinator, History,\
   find_parameters, NODE_TYPES, Bundle
 from oozie.models2 import _get_hiveserver2_url
 from oozie.utils import workflow_to_dict, model_to_dict, smart_path, contains_symlink
@@ -1694,8 +1694,10 @@ class TestEditor(OozieMockBase):
                           u'create-timezone': [u'America/Los_Angeles'], u'create-done_flag': [u''],
                           u'create-description': [u'']})
 
+    dataset = Dataset.objects.filter(coordinator=coord).order_by('-id')[0]
+
     self.c.post(reverse('oozie:create_coordinator_data', args=[coord.id, 'output']),
-                         {u'output-name': [u'output_dir'], u'output-dataset': [u'2']})
+                         {u'output-name': [u'output_dir'], u'output-dataset': [dataset.id]})
 
     assert_true(
 """<coordinator-app name="MyCoord"
@@ -1775,7 +1777,9 @@ class TestEditor(OozieMockBase):
     coord = create_coordinator(self.wf, self.c, self.user)
     create_dataset(coord, self.c)
 
-    response = self.c.post(reverse('oozie:edit_coordinator_dataset', args=[1]), {
+    dataset = Dataset.objects.get(coordinator=coord)
+
+    response = self.c.post(reverse('oozie:edit_coordinator_dataset', args=[dataset.id]), {
                         u'edit-name': [u'MyDataset'], u'edit-frequency_number': [u'1'], u'edit-frequency_unit': [u'days'],
                         u'edit-uri': [u'/data/${YEAR}${MONTH}${DAY}'],
                         u'edit-start_0': [u'07/01/2012'], u'edit-start_1': [u'12:00 AM'],
@@ -3800,8 +3804,9 @@ def create_dataset(coord, client):
 
 
 def create_coordinator_data(coord, client):
+  dataset = Dataset.objects.get(coordinator=coord)
   response = client.post(reverse('oozie:create_coordinator_data', args=[coord.id, 'input']),
-                         {u'input-name': [u'input_dir'], u'input-dataset': [u'1']})
+                         {u'input-name': [u'input_dir'], u'input-dataset': [dataset.id]})
   data = json.loads(response.content)
   assert_equal(0, data['status'], data['data'])
 

+ 3 - 2
apps/pig/src/pig/views.py

@@ -169,8 +169,9 @@ def copy(request):
   })
   script_copy.save()
 
-  copy_doc = pig_script.doc.get().copy(name=name, owner=owner)
-  script_copy.doc.add(copy_doc)
+  copy_doc = Document.objects.link(script_copy,
+      owner=copy.owner,
+      name=copy.name)
 
   response = {
     'id': script_copy.id,

+ 4 - 4
apps/search/src/search/search_controller.py

@@ -86,7 +86,6 @@ class SearchController(object):
       for doc2 in self.get_shared_search_collections():
         if doc2.id in collection_ids:
           name = doc2.name + '-copy'
-          copy_doc = doc2.doc.get().copy(name=name, owner=self.user)
 
           doc2.pk = None
           doc2.id = None
@@ -95,9 +94,10 @@ class SearchController(object):
           doc2.owner = self.user
           doc2.save()
 
-          doc2.doc.all().delete()
-          doc2.doc.add(copy_doc)
-          doc2.save()
+          copy_doc = Document.objects.link(doc2,
+              owner=copy.owner,
+              name=copy.name,
+              description=copy.description)
 
           copy = Collection2(self.user, document=doc2)
           copy.data['collection']['label'] = name

+ 4 - 4
apps/spark/src/spark/views.py

@@ -100,7 +100,6 @@ def copy(request):
 
   for notebook in notebooks:
     doc2 = Document2.objects.get(uuid=notebook['uuid'])
-    copy_doc = doc2.doc.get().copy(owner=request.user)
 
     doc2.pk = None
     doc2.id = None
@@ -108,9 +107,10 @@ def copy(request):
     doc2.owner = request.user
     doc2.save()
 
-    doc2.doc.all().delete()
-    doc2.doc.add(copy_doc)
-    doc2.save()
+    copy_doc = Document.objects.link(doc2,
+        owner=copy.owner,
+        name=copy.name,
+        description=copy.description)
 
   return JsonResponse({})
 

+ 0 - 3
desktop/core/src/desktop/api_tests.py

@@ -81,9 +81,6 @@ class TestDocModelTags():
     tag_id = self.add_tag(tag_name)
     assert_equal(n + 1, DocumentTag.objects.filter(owner=self.user, tag=tag_name).count())
 
-    DocumentTag.objects.create(owner=self.user, tag=tag_name)
-    assert_equal(n + 2, DocumentTag.objects.filter(owner=self.user, tag=tag_name).count())
-
     tag_id = DocumentTag.objects.tag(self.user, doc.id, tag_name=tag_name)
     assert_equal(n + 1, DocumentTag.objects.filter(owner=self.user, tag=tag_name).count())
 

+ 1 - 1
desktop/core/src/desktop/models.py

@@ -357,7 +357,7 @@ class DocumentManager(models.Manager):
 
     # Make sure all the sample user documents are shared.
     try:
-      with translation.atomic():
+      with transaction.atomic():
         for doc in Document.objects.filter(owner__username=SAMPLE_USERNAME):
           doc.share_to_default()