Ejemplo n.º 1
0
    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'))
Ejemplo n.º 2
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])
Ejemplo n.º 3
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)
Ejemplo n.º 4
0
    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))
Ejemplo n.º 5
0
    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)
Ejemplo n.º 6
0
    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])
Ejemplo n.º 7
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)
Ejemplo n.º 8
0
    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))
Ejemplo n.º 9
0
 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])
Ejemplo n.º 10
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)
Ejemplo n.º 11
0
    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)