def test_issue_kanban_moveleftright(self): self.assertEqual(self.project.kanbancol.count(), 4) issue1 = Issue(title="issue1", project=self.project, kanbancol=self.project.kanbancol.first()) issue1.save() self.assertEqual(issue1.get_left_kCol_for_issue(), -1) self.assertEqual(issue1.get_right_kCol_for_issue(), 1) # move issue to next row and check results issue1.kanbancol = self.project.kanbancol.get(position='1') issue1.save() self.assertEqual(issue1.get_left_kCol_for_issue(), 0) self.assertEqual(issue1.get_right_kCol_for_issue(), 2) # move issue to last row and check results issue1.kanbancol = self.project.kanbancol.get(position='3') issue1.save() self.assertEqual(issue1.get_left_kCol_for_issue(), 2) self.assertEqual(issue1.get_right_kCol_for_issue(), -1) # test view function response = self.client.post( reverse('issue:setkanbancol', kwargs={'project': self.project.name_short}), { 'sqn_k': '0', 'sqn_i': issue1.number, }, follow=True) self.assertRedirects( response, reverse('issue:projList', kwargs={'project': self.project.name_short})) issue1.refresh_from_db() self.assertEqual(issue1.kanbancol.position, 0) # check if error handling works (set col too high) response = self.client.post( reverse('issue:setkanbancol', kwargs={'project': self.project.name_short}), { 'sqn_k': '4', 'sqn_i': issue1.number, }, follow=True) self.assertRedirects( response, reverse('issue:projList', kwargs={'project': self.project.name_short})) self.assertEqual(len(list(response.context['messages'])), 1) issue1.refresh_from_db() self.assertEqual(issue1.kanbancol.position, 0) # check with invalid issue response = self.client.post( reverse('issue:setkanbancol', kwargs={'project': self.project.name_short}), { 'sqn_k': '2', 'sqn_i': issue1.number + 1, }, follow=True) self.assertRedirects( response, reverse('issue:projList', kwargs={'project': self.project.name_short})) self.assertEqual(len(list(response.context['messages'])), 1) issue1.refresh_from_db() self.assertEqual(issue1.kanbancol.position, 0)