]> git.ozlabs.org Git - patchwork/blobdiff - apps/patchwork/tests/bundles.py
tests: test creating bundles with existing names
[patchwork] / apps / patchwork / tests / bundles.py
index 1346cd836621a3f0faf261c506b354f75e6279dd..4e8fe2b590f44b0ef476565857de7aabdb6daa8a 100644 (file)
@@ -155,6 +155,28 @@ class BundleCreateFromListTest(BundleTestBase):
         self.failUnlessEqual(bundle.patches.count(), 1)
         self.failUnlessEqual(bundle.patches.all()[0], patch)
 
+    def testCreateNonEmptyBundleEmptyName(self):
+        newbundlename = 'testbundle-new'
+        patch = self.patches[0]
+
+        n_bundles = Bundle.objects.count()
+
+        params = {'form': 'patchlistform',
+                  'bundle_name': '',
+                  'action': 'Create',
+                  'project': defaults.project.id,
+                  'patch_id:%d' % patch.id: 'checked'}
+
+        response = self.client.post(
+                '/project/%s/list/' % defaults.project.linkname,
+                params)
+
+        self.assertContains(response, 'No bundle name was specified',
+                status_code = 200)
+
+        # test that no new bundles are present
+        self.failUnlessEqual(n_bundles, Bundle.objects.count())
+
 class BundleCreateFromPatchTest(BundleTestBase):
     def testCreateNonEmptyBundle(self):
         newbundlename = 'testbundle-new'
@@ -172,6 +194,20 @@ class BundleCreateFromPatchTest(BundleTestBase):
         self.failUnlessEqual(bundle.patches.count(), 1)
         self.failUnlessEqual(bundle.patches.all()[0], patch)
 
+    def testCreateWithExistingName(self):
+        newbundlename = self.bundle.name
+        patch = self.patches[0]
+
+        params = {'name': newbundlename,
+                  'action': 'createbundle'}
+
+        response = self.client.post('/patch/%d/' % patch.id, params)
+
+        self.assertContains(response,
+                'A bundle called %s already exists' % newbundlename)
+
+        count = Bundle.objects.count()
+        self.failUnlessEqual(Bundle.objects.count(), 1)
 
 class BundleAddFromListTest(BundleTestBase):
     def testAddToEmptyBundle(self):
@@ -218,6 +254,49 @@ class BundleAddFromListTest(BundleTestBase):
                 for i in [0, 1] ]
         self.failUnless(bps[0].order < bps[1].order)
 
+    def testAddDuplicate(self):
+        self.bundle.append_patch(self.patches[0])
+        count = self.bundle.patches.count()
+        patch = self.patches[0]
+
+        params = {'form': 'patchlistform',
+                  'action': 'Add',
+                  'project': defaults.project.id,
+                  'bundle_id': self.bundle.id,
+                  'patch_id:%d' % patch.id: 'checked'}
+
+        response = self.client.post(
+                '/project/%s/list/' % defaults.project.linkname,
+                params)
+
+        self.assertContains(response, 'Patch &#39;%s&#39; already in bundle' \
+                            % patch.name, count = 1, status_code = 200)
+
+        self.assertEquals(count, self.bundle.patches.count())
+
+    def testAddNewAndDuplicate(self):
+        self.bundle.append_patch(self.patches[0])
+        count = self.bundle.patches.count()
+        patch = self.patches[0]
+
+        params = {'form': 'patchlistform',
+                  'action': 'Add',
+                  'project': defaults.project.id,
+                  'bundle_id': self.bundle.id,
+                  'patch_id:%d' % patch.id: 'checked',
+                  'patch_id:%d' % self.patches[1].id: 'checked'}
+
+        response = self.client.post(
+                '/project/%s/list/' % defaults.project.linkname,
+                params)
+
+        self.assertContains(response, 'Patch &#39;%s&#39; already in bundle' \
+                            % patch.name, count = 1, status_code = 200)
+        self.assertContains(response, 'Patch &#39;%s&#39; added to bundle' \
+                            % self.patches[1].name, count = 1,
+                            status_code = 200)
+        self.assertEquals(count + 1, self.bundle.patches.count())
+
 class BundleAddFromPatchTest(BundleTestBase):
     def testAddToEmptyBundle(self):
         patch = self.patches[0]