summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorJeremy Kerr <jk@ozlabs.org>2010-09-02 19:11:53 +0800
committerJeremy Kerr <jk@ozlabs.org>2010-09-03 12:44:51 +0800
commit01733fbdd54ca6e678ca5edf008ae17cea348905 (patch)
treef26b72e4b81f82c4439ce9ac554fa30276652de2 /apps
parentac8978a5fcb372d7480798065a13dbef71fa8996 (diff)
downloadpatchwork-01733fbdd54ca6e678ca5edf008ae17cea348905.tar.bz2
patchwork-01733fbdd54ca6e678ca5edf008ae17cea348905.tar.xz
tests/updates: Add multiple invalid state change test
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Diffstat (limited to 'apps')
-rw-r--r--apps/patchwork/tests/updates.py23
1 files changed, 18 insertions, 5 deletions
diff --git a/apps/patchwork/tests/updates.py b/apps/patchwork/tests/updates.py
index 584b787..1a04c91 100644
--- a/apps/patchwork/tests/updates.py
+++ b/apps/patchwork/tests/updates.py
@@ -38,15 +38,13 @@ class MultipleUpdateTest(TestCase):
patch.save()
self.patches.append(patch)
- def testStateChangeValid(self):
- states = [patch.state.pk for patch in self.patches]
- state = State.objects.exclude(pk__in = states)[0]
+ def _testStateChange(self, state):
data = {'action': 'Update',
'project': str(defaults.project.id),
'form': 'patchlistform',
'archived': '*',
'delegate': '*',
- 'state': str(state.pk),
+ 'state': str(state),
}
for patch in self.patches:
data['patch_id:%d' % patch.id] = 'checked'
@@ -55,10 +53,25 @@ class MultipleUpdateTest(TestCase):
args = [defaults.project.linkname])
response = self.client.post(url, data)
self.failUnlessEqual(response.status_code, 200)
-
+ return response
+
+ def testStateChangeValid(self):
+ states = [patch.state.pk for patch in self.patches]
+ state = State.objects.exclude(pk__in = states)[0]
+ self._testStateChange(state.pk)
for patch in [Patch.objects.get(pk = p.pk) for p in self.patches]:
self.assertEquals(patch.state, state)
+ def testStateChangeInvalid(self):
+ state = max(State.objects.all().values_list('id', flat = True)) + 1
+ orig_states = [patch.state for patch in self.patches]
+ response = self._testStateChange(state)
+ self.assertEquals( \
+ [Patch.objects.get(pk = p.pk).state for p in self.patches],
+ orig_states)
+ self.assertEquals(response.context['errors'],
+ ['The submitted form data was invalid'])
+
def tearDown(self):
for p in self.patches:
p.delete()