X-Git-Url: https://git.ozlabs.org/?a=blobdiff_plain;f=apps%2Fpatchwork%2Ftests%2Fbundles.py;h=659500e559d2dcfda7d42231d53a0673946ee41b;hb=ddb04aaac7d9875f1dfd7970944dab6aa6557099;hp=2e4c8fac244e4351d00268bab2718e271bda09eb;hpb=fc58a911d4a43d6e0b06a1bd2e397e5448a591a7;p=patchwork diff --git a/apps/patchwork/tests/bundles.py b/apps/patchwork/tests/bundles.py index 2e4c8fa..659500e 100644 --- a/apps/patchwork/tests/bundles.py +++ b/apps/patchwork/tests/bundles.py @@ -48,8 +48,8 @@ class BundleListTest(TestCase): self.user.delete() class BundleTestBase(TestCase): - def setUp(self): - patch_names = ['testpatch1', 'testpatch2', 'testpatch3'] + def setUp(self, patch_count=3): + patch_names = ['testpatch%d' % (i) for i in range(1, patch_count+1)] self.user = create_user() self.client.login(username = self.user.username, password = self.user.username) @@ -336,31 +336,50 @@ class BundleAddFromPatchTest(BundleTestBase): class BundleReorderTest(BundleTestBase): def setUp(self): - super(BundleReorderTest, self).setUp() - self.bundle.append_patch(self.patches[0]) - self.bundle.append_patch(self.patches[1]) - self.bundle.append_patch(self.patches[2]) + super(BundleReorderTest, self).setUp(5) + for i in range(5): + self.bundle.append_patch(self.patches[i]) - def testBundleReorder(self): - bundlepatch = BundlePatch.objects.get(bundle = self.bundle, - patch = self.patches[0]) + def checkReordering(self, neworder, start, end): + neworder_ids = [ self.patches[i].id for i in neworder ] - neworder = [self.patches[2], self.patches[0], self.patches[1]] - neworder_ids = [ p.id for p in neworder ] + firstpatch = BundlePatch.objects.get(bundle = self.bundle, + patch = self.patches[start]).patch + slice_ids = neworder_ids[start:end] params = {'form': 'reorderform', - 'order_start': bundlepatch.patch.id, - 'neworder': neworder_ids} + 'order_start': firstpatch.id, + 'neworder': slice_ids} response = self.client.post('/user/bundle/%d/' % self.bundle.id, params) self.failUnlessEqual(response.status_code, 200) - bundle_ids = [ bp.patch.id for bp in \ - BundlePatch.objects.filter(bundle = self.bundle) \ - .order_by('order') ] + bps = BundlePatch.objects.filter(bundle = self.bundle) \ + .order_by('order') + # check if patch IDs are in the expected order: + bundle_ids = [ bp.patch.id for bp in bps ] self.failUnlessEqual(neworder_ids, bundle_ids) + # check if order field is still sequential: + order_numbers = [ bp.order for bp in bps ] + expected_order = range(1, len(neworder)+1) # [1 ... len(neworder)] + self.failUnlessEqual(order_numbers, expected_order) + + def testBundleReorderAll(self): + # reorder all patches: + self.checkReordering([2,1,4,0,3], 0, 5) + + def testBundleReorderEnd(self): + # reorder only the last three patches + self.checkReordering([0,1,3,2,4], 2, 5) + + def testBundleReorderBegin(self): + # reorder only the first three patches + self.checkReordering([2,0,1,3,4], 0, 3) + def testBundleReorderMiddle(self): + # reorder only 2nd, 3rd, and 4th patches + self.checkReordering([0,2,3,1,4], 1, 4)