From aa09aee4fc1114a53ef4abe82ced0a725faf512c Mon Sep 17 00:00:00 2001 From: Jeremy Kerr Date: Sun, 30 Dec 2012 13:21:01 +0800 Subject: [PATCH] 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 --- apps/patchwork/tests/bundles.py | 52 +++++++++++++++++++++++++++++++++ apps/patchwork/views/bundle.py | 3 ++ 2 files changed, 55 insertions(+) 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) -- 2.39.2