summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Kerr <jk@ozlabs.org>2012-12-30 13:21:01 +0800
committerJeremy Kerr <jk@ozlabs.org>2012-12-30 13:59:52 +0800
commitaa09aee4fc1114a53ef4abe82ced0a725faf512c (patch)
treeedb5dd8ad86dc16e3813d322116dc258464c9765
parent640b69c56a85c2c04d4dc57dbe5dc9ebe43633cf (diff)
downloadpatchwork-aa09aee4fc1114a53ef4abe82ced0a725faf512c.tar
patchwork-aa09aee4fc1114a53ef4abe82ced0a725faf512c.tar.gz
tests/bundle: Add bundle update tests, fix missing action behaviour
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>
-rw-r--r--apps/patchwork/tests/bundles.py52
-rw-r--r--apps/patchwork/views/bundle.py3
2 files changed, 55 insertions, 0 deletions
diff --git a/apps/patchwork/tests/bundles.py b/apps/patchwork/tests/bundles.py
index d516ea8..0404576 100644
--- a/apps/patchwork/tests/bundles.py
+++ b/apps/patchwork/tests/bundles.py
@@ -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):
diff --git a/apps/patchwork/views/bundle.py b/apps/patchwork/views/bundle.py
index 058153b..3846d23 100644
--- a/apps/patchwork/views/bundle.py
+++ b/apps/patchwork/views/bundle.py
@@ -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)