diff options
author | Jeremy Kerr <jk@ozlabs.org> | 2012-12-30 13:21:01 +0800 |
---|---|---|
committer | Jeremy Kerr <jk@ozlabs.org> | 2012-12-30 13:59:52 +0800 |
commit | aa09aee4fc1114a53ef4abe82ced0a725faf512c (patch) | |
tree | edb5dd8ad86dc16e3813d322116dc258464c9765 | |
parent | 640b69c56a85c2c04d4dc57dbe5dc9ebe43633cf (diff) | |
download | patchwork-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.py | 52 | ||||
-rw-r--r-- | apps/patchwork/views/bundle.py | 3 |
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) |