]> git.ozlabs.org Git - patchwork/commitdiff
tests/bundle: Add bundle update tests, fix missing action behaviour
authorJeremy Kerr <jk@ozlabs.org>
Sun, 30 Dec 2012 05:21:01 +0000 (13:21 +0800)
committerJeremy Kerr <jk@ozlabs.org>
Sun, 30 Dec 2012 05:59:52 +0000 (13:59 +0800)
Add a couple of tests for the bundle update views. This exposes a
problem with no action is specified, so fix this too.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
apps/patchwork/tests/bundles.py
apps/patchwork/views/bundle.py

index d516ea8d578509ae9e10d24c2bfe924de132b6a3..0404576e905c82555a9664d247def6834bfbecfe 100644 (file)
@@ -121,6 +121,58 @@ class BundleViewTest(BundleTestBase):
             self.failUnless(next_pos < pos)
             pos = next_pos
 
+class BundleUpdateTest(BundleTestBase):
+
+    def setUp(self):
+        super(BundleUpdateTest, self).setUp()
+        self.newname = 'newbundlename'
+
+    def publicString(self, public):
+        if public:
+            return 'on'
+        return ''
+
+    def testNoAction(self):
+        data = {
+            'form': 'bundle',
+            'name': self.newname,
+            'public': self.publicString(not self.bundle.public)
+        }
+        response = self.client.post('/user/bundle/%d/' % self.bundle.id, data)
+        self.assertEqual(response.status_code, 200)
+
+        bundle = Bundle.objects.get(pk = self.bundle.pk)
+        self.assertEqual(bundle.name, self.bundle.name)
+        self.assertEqual(bundle.public, self.bundle.public)
+
+    def testUpdateName(self):
+        newname = 'newbundlename'
+        data = {
+            'form': 'bundle',
+            'action': 'update',
+            'name': newname,
+            'public': self.publicString(self.bundle.public)
+        }
+        response = self.client.post('/user/bundle/%d/' % self.bundle.id, data)
+        self.assertEqual(response.status_code, 200)
+        bundle = Bundle.objects.get(pk = self.bundle.pk)
+        self.assertEqual(bundle.name, newname)
+        self.assertEqual(bundle.public, self.bundle.public)
+
+    def testUpdatePublic(self):
+        newname = 'newbundlename'
+        data = {
+            'form': 'bundle',
+            'action': 'update',
+            'name': self.bundle.name,
+            'public': self.publicString(not self.bundle.public)
+        }
+        response = self.client.post('/user/bundle/%d/' % self.bundle.id, data)
+        self.assertEqual(response.status_code, 200)
+        bundle = Bundle.objects.get(pk = self.bundle.pk)
+        self.assertEqual(bundle.name, self.bundle.name)
+        self.assertEqual(bundle.public, not self.bundle.public)
+
 class BundlePublicViewTest(BundleTestBase):
 
     def setUp(self):
index 058153beeefc70a748ed089defba95e53270de71..3846d239b8e305acfdcbb54f5535ac2ca7371016 100644 (file)
@@ -142,6 +142,9 @@ def bundle(request, bundle_id):
             form = BundleForm(request.POST, instance = bundle)
             if form.is_valid():
                 form.save()
+
+        else:
+            form = BundleForm(instance = bundle)
     else:
         form = BundleForm(instance = bundle)