def test_user_update_ticket_move_bug_get(self): """ Regression test for issue https://github.com/ashwoods/potatoist/issues/2 move ticket to another project """ new_project = Project.objects.create(title='New Project') wrong_kwargs = {'project_id': new_project.pk, 'ticket_id': self.test_ticket.pk} request = self.rf.get(reverse('ticket-update', kwargs=wrong_kwargs)) request.user = self.user views.update_ticket_view(request, **wrong_kwargs)
def test_ticket_edit(self): # I'm unsure how to test with logged user using djangoae # Using request factory to bypass that. request = self.rf.get('/projects/%s/tickets/%s/edit' % (self.project.id, self.ticket.id)) request.user = self.user r = update_ticket_view(request, project_id=self.project.id, ticket_id=self.ticket.id) self.assertEqual(r.status_code, 200) r.render() self.assertIn(u'Submit', r.content.decode('utf8'))
def test_user_update_ticket_view_post_success(self): request = self.rf.post(reverse('ticket-update', kwargs=self.ticket_kwargs), self.form_post_data) request.user = self.user response = views.update_ticket_view(request, **self.ticket_kwargs) assert_code(response, 302) eq_(response['location'], reverse('project-detail', kwargs=self.project_kwargs)) ticket = Ticket.objects.get(pk=self.test_ticket.pk) ok_(ticket.title == self.form_post_data.get('title')) ok_(request.user in ticket.assignees.all())
def test_update_ticket_view_redirects_on_sucessful_update(self): ticket_update_url = '/projects/{}/tickets/{}/edit'.format( self.teal_project.id, self.ticket.id) request = self.request_factory.post(ticket_update_url, data=self.form_data) request.user = self.user res = update_ticket_view(request, project_id=self.teal_project.id, ticket_id=self.ticket.id) self.assertEqual(res.status_code, 302) self.assertEqual(res.url, '/projects/{}/'.format(self.teal_project.id))
def test_update_ticket_view_adds_form_error_if_a_project_the_ticket_does_belong_to_is_given_in_url( self): ticket_update_url = '/projects/{}/tickets/{}/edit'.format( self.rainbow_project.id, self.ticket.id) request = self.request_factory.post(ticket_update_url, data=self.form_data) request.user = self.user res = update_ticket_view(request, project_id=self.rainbow_project.id, ticket_id=self.ticket.id) self.assertEqual(len(res.context_data['form'].errors), 1)
def test_update_ticket_view_does_not_update_ticket_if_a_project_the_ticket_does_belong_to_is_given_in_url( self): ticket_update_url = '/projects/{}/tickets/{}/edit'.format( self.rainbow_project.id, self.ticket.id) request = self.request_factory.post(ticket_update_url, data=self.form_data) request.user = self.user res = update_ticket_view(request, project_id=self.rainbow_project.id, ticket_id=self.ticket.id) updated_ticket = Ticket.objects.get(id=self.ticket.id) self.assertNotEqual(self.new_title, updated_ticket.title) self.assertEqual(self.teal_project.id, updated_ticket.project_id)
def test_update_ticket_view_updates_tickets_values(self): ticket_update_url = '/projects/{}/tickets/{}/edit'.format( self.teal_project.id, self.ticket.id) request = self.request_factory.post(ticket_update_url, data=self.form_data) request.user = self.user res = update_ticket_view(request, project_id=self.teal_project.id, ticket_id=self.ticket.id) updated_ticket = Ticket.objects.get(id=self.ticket.id) self.assertEqual(self.new_title, updated_ticket.title) self.assertEqual(self.new_description, updated_ticket.description) self.assertEqual(self.user.id, updated_ticket.assignees.values()[0]['id'])
def test_user_update_ticket_view_post_error(self): request = self.rf.post(reverse('ticket-update', kwargs=self.ticket_kwargs)) request.user = self.user response = views.update_ticket_view(request, **self.ticket_kwargs) ok_(not response.context_data['form'].is_valid())
def test_user_update_ticket_view_get(self): request = self.rf.get(reverse('ticket-update', kwargs=self.ticket_kwargs)) request.user = self.user response = views.update_ticket_view(request, **self.ticket_kwargs) assert_code(response, 200) ok_(response.render())