def test_put_with_publish(self):
        """Testing the
        PUT review-requests/<id>/reviews/<id>/replies/<id>/?public=1 API
        """
        self.siteconfig.set('mail_send_review_mail', True)
        self.siteconfig.save()

        review_request = self.create_review_request(publish=True)
        review = self.create_review(review_request, publish=True)

        mail.outbox = []

        rsp, response = self.api_post_with_response(
            get_review_reply_list_url(review),
            expected_mimetype=review_reply_item_mimetype)

        self.assertIn('Location', response)
        self.assertIn('stat', rsp)
        self.assertEqual(rsp['stat'], 'ok')

        rsp = self.api_put(
            response['Location'],
            {
                'body_top': 'Test',
                'public': True,
            },
            expected_mimetype=review_reply_item_mimetype)

        self.assertEqual(rsp['stat'], 'ok')

        reply = Review.objects.get(pk=rsp['reply']['id'])
        self.assertEqual(reply.public, True)

        self.assertEqual(len(mail.outbox), 1)
Пример #2
0
    def test_put_reply_publish(self):
        """Testing the PUT review-requests/<id>/reviews/<id>/replies/<id>/?public=1 API"""
        self.siteconfig.set('mail_send_review_mail', True)
        self.siteconfig.save()

        review_request = self.create_review_request(publish=True)
        review = self.create_review(review_request, publish=True)

        mail.outbox = []

        rsp, response = self.api_post_with_response(
            get_review_reply_list_url(review),
            expected_mimetype=review_reply_item_mimetype)

        self.assertTrue('Location' in response)
        self.assertTrue('stat' in rsp)
        self.assertEqual(rsp['stat'], 'ok')

        rsp = self.apiPut(response['Location'], {
            'body_top': 'Test',
            'public': True,
        },
                          expected_mimetype=review_reply_item_mimetype)

        self.assertEqual(rsp['stat'], 'ok')

        reply = Review.objects.get(pk=rsp['reply']['id'])
        self.assertEqual(reply.public, True)

        self.assertEqual(len(mail.outbox), 1)
Пример #3
0
    def test_get_with_site(self):
        """Testing the
        GET review-requests/<id>/reviews/<id>/replies/ API with a local site
        """
        review_request = self.create_review_request(with_local_site=True,
                                                    publish=True)
        review = self.create_review(review_request, publish=True)
        review = self.create_reply(review, user=self.user, publish=True)

        self._login_user(local_site=True)

        public_replies = review.public_replies()

        rsp = self.apiGet(
            get_review_reply_list_url(review, self.local_site_name),
            expected_mimetype=review_reply_list_mimetype)
        self.assertEqual(rsp['stat'], 'ok')
        self.assertEqual(len(rsp['replies']), public_replies.count())

        for i in range(public_replies.count()):
            reply = public_replies[i]
            self.assertEqual(rsp['replies'][i]['id'], reply.id)
            self.assertEqual(rsp['replies'][i]['body_top'], reply.body_top)
            self.assertEqual(rsp['replies'][i]['body_bottom'],
                             reply.body_bottom)
Пример #4
0
    def setup_basic_post_test(self, user, with_local_site, local_site_name,
                              post_valid_data):
        review_request = self.create_review_request(
            with_local_site=with_local_site, submitter=user, publish=True)
        review = self.create_review(review_request, publish=True)

        return (get_review_reply_list_url(review, local_site_name),
                review_reply_item_mimetype, {}, [review])
Пример #5
0
    def test_get_replies_with_site_no_access(self):
        """Testing the GET review-requests/<id>/reviews/<id>/replies/ API with a local site and Permission Denied error"""
        review_request = self.create_review_request(publish=True)
        review = self.create_review(review_request, publish=True)

        rsp = self.apiGet(get_review_reply_list_url(review,
                                                    self.local_site_name),
                          expected_status=403)
        self.assertEqual(rsp['stat'], 'fail')
        self.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
Пример #6
0
    def test_get_replies_with_site_no_access(self):
        """Testing the GET review-requests/<id>/reviews/<id>/replies/ API with a local site and Permission Denied error"""
        review_request = self.create_review_request(publish=True)
        review = self.create_review(review_request, publish=True)

        rsp = self.apiGet(
            get_review_reply_list_url(review, self.local_site_name),
            expected_status=403)
        self.assertEqual(rsp['stat'], 'fail')
        self.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
Пример #7
0
    def test_get_replies_with_counts_only(self):
        """Testing the GET review-requests/<id>/reviews/<id>/replies/?counts-only=1 API"""
        review = self._create_test_review()

        self.test_put_reply()

        rsp = self.apiGet(
            '%s?counts-only=1' % get_review_reply_list_url(review),
            expected_mimetype=review_reply_list_mimetype)
        self.assertEqual(rsp['stat'], 'ok')
        self.assertEqual(rsp['count'], review.public_replies().count())
Пример #8
0
    def test_get_replies_with_counts_only(self):
        """Testing the GET review-requests/<id>/reviews/<id>/replies/?counts-only=1 API"""
        review = self._create_test_review()

        self.test_put_reply()

        rsp = self.apiGet('%s?counts-only=1' %
                          get_review_reply_list_url(review),
                          expected_mimetype=review_reply_list_mimetype)
        self.assertEqual(rsp['stat'], 'ok')
        self.assertEqual(rsp['count'], review.public_replies().count())
Пример #9
0
    def test_get_with_counts_only(self):
        """Testing the
        GET review-requests/<id>/reviews/<id>/replies/?counts-only=1 API
        """
        review = self._create_test_review()
        self.create_reply(review, user=self.user, publish=True)

        rsp = self.api_get(
            '%s?counts-only=1' % get_review_reply_list_url(review),
            expected_mimetype=review_reply_list_mimetype)
        self.assertEqual(rsp['stat'], 'ok')
        self.assertEqual(rsp['count'], 1)
    def test_get_with_counts_only(self):
        """Testing the
        GET review-requests/<id>/reviews/<id>/replies/?counts-only=1 API
        """
        review = self._create_test_review()
        self.create_reply(review, user=self.user, publish=True)

        rsp = self.api_get(
            '%s?counts-only=1' % get_review_reply_list_url(review),
            expected_mimetype=review_reply_list_mimetype)
        self.assertEqual(rsp['stat'], 'ok')
        self.assertEqual(rsp['count'], 1)
    def setup_basic_post_test(self, user, with_local_site, local_site_name,
                              post_valid_data):
        review_request = self.create_review_request(
            with_local_site=with_local_site,
            submitter=user,
            publish=True)
        review = self.create_review(review_request, publish=True)

        return (get_review_reply_list_url(review, local_site_name),
                review_reply_item_mimetype,
                {},
                [review])
Пример #12
0
    def setup_basic_get_test(self, user, with_local_site, local_site_name,
                             populate_items):
        review_request = self.create_review_request(
            with_local_site=with_local_site, submitter=user, publish=True)
        review = self.create_review(review_request, publish=True)

        if populate_items:
            items = [self.create_reply(review, publish=True)]
        else:
            items = []

        return (get_review_reply_list_url(review, local_site_name),
                review_reply_list_mimetype, items)
Пример #13
0
    def test_get(self):
        """Testing the GET review-requests/<id>/reviews/<id>/replies API"""
        review = self._create_test_review()
        reply = self.create_reply(review, user=self.user, publish=True)

        rsp = self.apiGet(get_review_reply_list_url(review),
                          expected_mimetype=review_reply_list_mimetype)
        self.assertEqual(rsp['stat'], 'ok')
        self.assertEqual(len(rsp['replies']), 1)

        reply_rsp = rsp['replies'][0]
        self.assertEqual(reply_rsp['id'], reply.id)
        self.assertEqual(reply_rsp['body_top'], reply.body_top)
        self.assertEqual(reply_rsp['body_bottom'], reply.body_bottom)
Пример #14
0
    def test_post_replies(self):
        """Testing the POST review-requests/<id>/reviews/<id>/replies/ API"""
        review_request = self.create_review_request(publish=True)
        review = self.create_review(review_request, publish=True)

        mail.outbox = []

        rsp = self.apiPost(get_review_reply_list_url(review),
                           {'body_top': 'Test'},
                           expected_mimetype=review_reply_item_mimetype)

        self.assertEqual(rsp['stat'], 'ok')

        self.assertEqual(len(mail.outbox), 0)
Пример #15
0
    def test_post_replies_with_body_bottom(self):
        """Testing the POST review-requests/<id>/reviews/<id>/replies/ API with body_bottom"""
        body_bottom = 'My Body Bottom'

        review_request = self.create_review_request(publish=True)
        review = self.create_review(review_request, publish=True)

        rsp = self.apiPost(get_review_reply_list_url(review),
                           {'body_bottom': body_bottom},
                           expected_mimetype=review_reply_item_mimetype)

        self.assertEqual(rsp['stat'], 'ok')

        reply = Review.objects.get(pk=rsp['reply']['id'])
        self.assertEqual(reply.body_bottom, body_bottom)
Пример #16
0
    def test_delete_reply(self):
        """Testing the DELETE review-requests/<id>/reviews/<id>/replies/<id>/ API"""
        review_request = self.create_review_request(publish=True)
        review = self.create_review(review_request, user='******', publish=True)

        rsp = self.apiPost(get_review_reply_list_url(review),
                           {'body_top': 'Test'},
                           expected_mimetype=review_reply_item_mimetype)

        self.assertEqual(rsp['stat'], 'ok')

        reply_id = rsp['reply']['id']
        rsp = self.apiDelete(rsp['reply']['links']['self']['href'])

        self.assertEqual(Review.objects.filter(pk=reply_id).count(), 0)
Пример #17
0
    def test_post_replies_with_site(self):
        """Testing the POST review-requsets/<id>/reviews/<id>/replies/ API with a local site"""
        review_request = self.create_review_request(with_local_site=True)
        review = self.create_review(review_request, publish=True)

        mail.outbox = []

        self._login_user(local_site=True)

        rsp = self.apiPost(get_review_reply_list_url(review,
                                                     self.local_site_name),
                           {'body_top': 'Test'},
                           expected_mimetype=review_reply_item_mimetype)
        self.assertEqual(rsp['stat'], 'ok')
        self.assertEqual(len(mail.outbox), 0)
Пример #18
0
    def test_post_replies_with_site(self):
        """Testing the POST review-requsets/<id>/reviews/<id>/replies/ API with a local site"""
        review_request = self.create_review_request(with_local_site=True)
        review = self.create_review(review_request, publish=True)

        mail.outbox = []

        self._login_user(local_site=True)

        rsp = self.apiPost(
            get_review_reply_list_url(review, self.local_site_name),
            {'body_top': 'Test'},
            expected_mimetype=review_reply_item_mimetype)
        self.assertEqual(rsp['stat'], 'ok')
        self.assertEqual(len(mail.outbox), 0)
Пример #19
0
    def test_post_replies(self):
        """Testing the POST review-requests/<id>/reviews/<id>/replies/ API"""
        review_request = self.create_review_request(publish=True)
        review = self.create_review(review_request, publish=True)

        mail.outbox = []

        rsp = self.apiPost(
            get_review_reply_list_url(review),
            {'body_top': 'Test'},
            expected_mimetype=review_reply_item_mimetype)

        self.assertEqual(rsp['stat'], 'ok')

        self.assertEqual(len(mail.outbox), 0)
    def setup_basic_get_test(self, user, with_local_site, local_site_name,
                             populate_items):
        review_request = self.create_review_request(
            with_local_site=with_local_site,
            submitter=user,
            publish=True)
        review = self.create_review(review_request, publish=True)

        if populate_items:
            items = [self.create_reply(review, publish=True)]
        else:
            items = []

        return (get_review_reply_list_url(review, local_site_name),
                review_reply_list_mimetype,
                items)
Пример #21
0
    def test_delete_reply(self):
        """Testing the DELETE review-requests/<id>/reviews/<id>/replies/<id>/ API"""
        review_request = self.create_review_request(publish=True)
        review = self.create_review(review_request, user='******', publish=True)

        rsp = self.apiPost(
            get_review_reply_list_url(review),
            {'body_top': 'Test'},
            expected_mimetype=review_reply_item_mimetype)

        self.assertEqual(rsp['stat'], 'ok')

        reply_id = rsp['reply']['id']
        rsp = self.apiDelete(rsp['reply']['links']['self']['href'])

        self.assertEqual(Review.objects.filter(pk=reply_id).count(), 0)
Пример #22
0
    def test_post_replies_with_body_bottom(self):
        """Testing the POST review-requests/<id>/reviews/<id>/replies/ API with body_bottom"""
        body_bottom = 'My Body Bottom'

        review_request = self.create_review_request(publish=True)
        review = self.create_review(review_request, publish=True)

        rsp = self.apiPost(
            get_review_reply_list_url(review),
            {'body_bottom': body_bottom},
            expected_mimetype=review_reply_item_mimetype)

        self.assertEqual(rsp['stat'], 'ok')

        reply = Review.objects.get(pk=rsp['reply']['id'])
        self.assertEqual(reply.body_bottom, body_bottom)
Пример #23
0
    def test_put_reply(self):
        """Testing the PUT review-requests/<id>/reviews/<id>/replies/<id>/ API"""
        review_request = self.create_review_request(publish=True)
        review = self.create_review(review_request, publish=True)

        rsp, response = self.api_post_with_response(
            get_review_reply_list_url(review),
            expected_mimetype=review_reply_item_mimetype)

        self.assertTrue('Location' in response)
        self.assertTrue('stat' in rsp)
        self.assertEqual(rsp['stat'], 'ok')

        rsp = self.apiPut(response['Location'], {'body_top': 'Test'},
                          expected_mimetype=review_reply_item_mimetype)

        self.assertEqual(rsp['stat'], 'ok')
Пример #24
0
    def test_put_reply_with_site(self):
        """Testing the PUT review-requests/<id>/reviews/<id>/replies/<id>/ API with a local site"""
        review_request = self.create_review_request(with_local_site=True)

        review = self.create_review(review_request, user='******', publish=True)

        self._login_user(local_site=True)

        rsp, response = self.api_post_with_response(
            get_review_reply_list_url(review, self.local_site_name),
            expected_mimetype=review_reply_item_mimetype)
        self.assertTrue('Location' in response)
        self.assertTrue('stat' in rsp)
        self.assertEqual(rsp['stat'], 'ok')

        rsp = self.apiPut(response['Location'], {'body_top': 'Test'},
                          expected_mimetype=review_reply_item_mimetype)
        self.assertEqual(rsp['stat'], 'ok')
Пример #25
0
    def test_get_replies(self):
        """Testing the GET review-requests/<id>/reviews/<id>/replies API"""
        review = self._create_test_review()

        self.test_put_reply()

        public_replies = review.public_replies()

        rsp = self.apiGet(get_review_reply_list_url(review),
                          expected_mimetype=review_reply_list_mimetype)
        self.assertEqual(rsp['stat'], 'ok')
        self.assertEqual(len(rsp['replies']), public_replies.count())

        for i in range(public_replies.count()):
            reply = public_replies[i]
            self.assertEqual(rsp['replies'][i]['id'], reply.id)
            self.assertEqual(rsp['replies'][i]['body_top'], reply.body_top)
            self.assertEqual(rsp['replies'][i]['body_bottom'],
                             reply.body_bottom)
Пример #26
0
    def test_put_reply(self):
        """Testing the PUT review-requests/<id>/reviews/<id>/replies/<id>/ API"""
        review_request = self.create_review_request(publish=True)
        review = self.create_review(review_request, publish=True)

        rsp, response = self.api_post_with_response(
            get_review_reply_list_url(review),
            expected_mimetype=review_reply_item_mimetype)

        self.assertTrue('Location' in response)
        self.assertTrue('stat' in rsp)
        self.assertEqual(rsp['stat'], 'ok')

        rsp = self.apiPut(
            response['Location'],
            {'body_top': 'Test'},
            expected_mimetype=review_reply_item_mimetype)

        self.assertEqual(rsp['stat'], 'ok')
Пример #27
0
    def test_get_replies(self):
        """Testing the GET review-requests/<id>/reviews/<id>/replies API"""
        review = self._create_test_review()

        self.test_put_reply()

        public_replies = review.public_replies()

        rsp = self.apiGet(get_review_reply_list_url(review),
                          expected_mimetype=review_reply_list_mimetype)
        self.assertEqual(rsp['stat'], 'ok')
        self.assertEqual(len(rsp['replies']), public_replies.count())

        for i in range(public_replies.count()):
            reply = public_replies[i]
            self.assertEqual(rsp['replies'][i]['id'], reply.id)
            self.assertEqual(rsp['replies'][i]['body_top'], reply.body_top)
            self.assertEqual(rsp['replies'][i]['body_bottom'],
                             reply.body_bottom)
Пример #28
0
    def test_put_reply_with_site(self):
        """Testing the PUT review-requests/<id>/reviews/<id>/replies/<id>/ API with a local site"""
        review_request = self.create_review_request(with_local_site=True)

        review = self.create_review(review_request, user='******', publish=True)

        self._login_user(local_site=True)

        rsp, response = self.api_post_with_response(
            get_review_reply_list_url(review, self.local_site_name),
            expected_mimetype=review_reply_item_mimetype)
        self.assertTrue('Location' in response)
        self.assertTrue('stat' in rsp)
        self.assertEqual(rsp['stat'], 'ok')

        rsp = self.apiPut(
            response['Location'],
            {'body_top': 'Test'},
            expected_mimetype=review_reply_item_mimetype)
        self.assertEqual(rsp['stat'], 'ok')
Пример #29
0
    def test_put_with_publish_and_trivial(self):
        """Testing the PUT review-requests/<id>/draft/ API with trivial
        changes
        """
        self.siteconfig.set('mail_send_review_mail', True)
        self.siteconfig.save()

        review_request = self.create_review_request(submitter=self.user,
                                                    publish=True)

        review = self.create_review(review_request, publish=True)

        mail.outbox = []

        rsp, response = self.api_post_with_response(
            get_review_reply_list_url(review),
            expected_mimetype=review_reply_item_mimetype)

        self.assertIn('Location', response)
        self.assertIn('stat', rsp)
        self.assertEqual(rsp['stat'], 'ok')

        rsp = self.api_put(
            response['Location'],
            {
                'body_top': 'Test',
                'public': True,
                'trivial': True
            },
            expected_mimetype=review_reply_item_mimetype)

        self.assertIn('stat', rsp)
        self.assertEqual(rsp['stat'], 'ok')
        self.assertIn('reply', rsp)
        self.assertIn('id', rsp['reply'])

        reply = Review.objects.get(pk=rsp['reply']['id'])

        self.assertTrue(reply.public)

        self.assertEqual(len(mail.outbox), 0)
Пример #30
0
    def test_get_replies_with_site(self):
        """Testing the GET review-requests/<id>/reviews/<id>/replies/ API with a local site"""
        review_request = self.create_review_request(with_local_site=True,
                                                    publish=True)
        review = self.create_review(review_request, publish=True)
        review = self.create_reply(review, user=self.user, publish=True)

        self._login_user(local_site=True)

        public_replies = review.public_replies()

        rsp = self.apiGet(get_review_reply_list_url(review,
                                                    self.local_site_name),
                          expected_mimetype=review_reply_list_mimetype)
        self.assertEqual(rsp['stat'], 'ok')
        self.assertEqual(len(rsp['replies']), public_replies.count())

        for i in range(public_replies.count()):
            reply = public_replies[i]
            self.assertEqual(rsp['replies'][i]['id'], reply.id)
            self.assertEqual(rsp['replies'][i]['body_top'], reply.body_top)
            self.assertEqual(rsp['replies'][i]['body_bottom'],
                             reply.body_bottom)
Пример #31
0
    def setup_review_request_child_test(self, review_request):
        review = self.create_review(review_request, publish=True)

        return (get_review_reply_list_url(review),
                review_reply_list_mimetype)
    def setup_review_request_child_test(self, review_request):
        review = self.create_review(review_request, publish=True)

        return (get_review_reply_list_url(review),
                review_reply_list_mimetype)