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)
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)
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)
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])
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)
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)
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())
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())
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])
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)
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)
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 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)
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)
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)
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)
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)
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)
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)
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')
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')
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)
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')
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)
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')
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)
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)
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)