Example #1
0
class QueueChangesetFromViewTest(TestCase):
    def setUp(self):
        self.password = "******"
        self.queuer = UserFactory(password=self.password)
        self.queue_changesets_group = Group.objects.get(name="Queue Changesets")
        self.queuer.groups.add(self.queue_changesets_group)
        self.login(self.queuer)

        self.changeset = ChangesetFactory(status=Changeset.STATUS_APPROVED)
        self.url = reverse('approve_changeset', kwargs={'pk': self.changeset.pk})
        self.review_url = reverse('read_changeset', kwargs={'pk': self.changeset.pk})

    def login(self, user):
        assert self.client.login(username=user.username, password=self.password)

    def test_queue_from_view(self):
        rsp = self.client.post(self.url, data={'queue': 'queue'})
        self.assertRedirects(rsp, self.review_url, msg_prefix=rsp.content.decode('utf-8'))

    def test_queue_from_view_without_permission(self):
        self.queuer.groups.remove(self.queue_changesets_group)
        assert not self.queuer.has_perm(QUEUE_CHANGESET_PERMISSION)
        assert not self.changeset.may_be_queued_by(self.queuer)
        rsp = self.client.post(self.url, data={'queue': 'queue'}, follow=False)
        self.assertEqual(FORBIDDEN, rsp.status_code)