def test_list_version_1_0(self): """List cover letter comments using API v1.0.""" cover = create_cover() create_cover_comment(cover=cover) # check we can't access comments using the old version of the API with self.assertRaises(NoReverseMatch): self.client.get(self.api_url(cover, version='1.0'))
def test_list_version_1_1(self): """List cover letter comments using API v1.1.""" create_cover_comment(cover=self.cover) resp = self.client.get(self.api_url(self.cover, version='1.1')) self.assertEqual(status.HTTP_200_OK, resp.status_code) self.assertEqual(1, len(resp.data)) self.assertNotIn('list_archive_url', resp.data[0]) self.assertNotIn('addressed', resp.data[0])
def test_find_cover_for_comment__indirect_reply(self): """Test behavior when we only have a reference to a comment.""" msgid = make_msgid() project = create_project() cover = create_cover(project=project) create_cover_comment(cover=cover, msgid=msgid) result = parser.find_cover_for_comment(project, [msgid]) self.assertEqual(cover, result)
def test_detail_version_1_0(self): """Show a cover letter comment using API v1.0.""" comment = create_cover_comment(cover=self.cover) with self.assertRaises(NoReverseMatch): self.client.get( self.api_url(self.cover, version='1.0', item=comment))
def test_detail(self): """Show a cover letter comment.""" comment = create_cover_comment(cover=self.cover) resp = self.client.get(self.api_url(self.cover, item=comment)) self.assertEqual(status.HTTP_200_OK, resp.status_code) self.assertSerialized(comment, resp.data)
def test_list(self): """List cover letter comments.""" cover = create_cover() comment = create_cover_comment(cover=cover) resp = self.client.get(self.api_url(cover)) self.assertEqual(status.HTTP_200_OK, resp.status_code) self.assertEqual(1, len(resp.data)) self.assertSerialized(comment, resp.data[0])
def test_detail_invalid_cover(self): """Ensure we handle non-existent cover letters.""" comment = create_cover_comment() resp = self.client.get( reverse('api-cover-comment-detail', kwargs={ 'cover_id': '99999', 'comment_id': comment.id }), ) self.assertEqual(status.HTTP_404_NOT_FOUND, resp.status_code)
def _test_update(self, person, **kwargs): submitter = kwargs.get('submitter', person) cover = kwargs.get('cover', self.cover) comment = create_cover_comment(submitter=submitter, cover=cover) if kwargs.get('authenticate', True): self.client.force_authenticate(user=person.user) return self.client.patch(self.api_url(cover, item=comment), {'addressed': kwargs.get('addressed', True)}, validate_request=kwargs.get( 'validate_request', True))
def test_cover_comment_created(self): """Validate 'cover-comment-created' events.""" comment = utils.create_cover_comment() events = _get_events(cover_comment=comment) self.assertEqual(events.count(), 1) self.assertEqual( events[0].category, Event.CATEGORY_COVER_COMMENT_CREATED, ) self.assertEqual(events[0].project, comment.cover.project) self.assertEventFields(events[0])
def test_create_delete(self): """Ensure creates and deletes aren't allowed""" comment = create_cover_comment(cover=self.cover) self.user.is_superuser = True self.user.save() self.client.force_authenticate(user=self.user) resp = self.client.post(self.api_url(self.cover, item=comment)) self.assertEqual(status.HTTP_405_METHOD_NOT_ALLOWED, resp.status_code) resp = self.client.delete(self.api_url(self.cover, item=comment)) self.assertEqual(status.HTTP_405_METHOD_NOT_ALLOWED, resp.status_code)
def test_cover_redirect(self): cover = create_cover() comment_id = create_cover_comment(cover=cover).id requested_url = reverse('comment-redirect', kwargs={'comment_id': comment_id}) redirect_url = '%s#%d' % (reverse('cover-detail', kwargs={ 'project_id': cover.project.linkname, 'msgid': cover.url_msgid }), comment_id) response = self.client.get(requested_url) self.assertRedirects(response, redirect_url)