def setup_basic_get_test(self, user, with_local_site, local_site_name): review_request = self.create_review_request( with_local_site=with_local_site, submitter=user, publish=True) review = self.create_review(review_request, user=user) comment = self.create_general_comment(review) return (get_review_general_comment_item_url(review, comment.pk, local_site_name), general_comment_item_mimetype, comment)
def test_delete_with_does_not_exist_error(self): """Testing the DELETE review-requests/<id>/reviews/<id>/general-comments/<id>/ API with Does Not Exist error """ review_request = self.create_review_request(publish=True) review = self.create_review(review_request, user=self.user) self.api_delete(get_review_general_comment_item_url(review, 123), expected_status=404)
def setup_basic_delete_test(self, user, with_local_site, local_site_name): review_request = self.create_review_request( with_local_site=with_local_site, submitter=user, publish=True) review = self.create_review(review_request, user=user) comment = self.create_general_comment(review) return (get_review_general_comment_item_url(review, comment.pk, local_site_name), [comment, review])
def setup_basic_put_test(self, user, with_local_site, local_site_name, put_valid_data): review_request = self.create_review_request( with_local_site=with_local_site, submitter=user, publish=True) review = self.create_review(review_request, user=user) comment = self.create_general_comment(review) return (get_review_general_comment_item_url(review, comment.pk, local_site_name), general_comment_item_mimetype, { 'text': 'Test comment', }, comment, [])
def test_put_issue_status_after_publish(self): """Testing the PUT review-requests/<id>/reviews/<id>/general-comments/<id>/ API with an issue, after review is published """ comment, review, review_request = \ self._create_general_review_with_issue(publish=True) rsp = self.api_put(get_review_general_comment_item_url( review, comment.pk), {'issue_status': 'resolved'}, expected_mimetype=general_comment_item_mimetype) self.assertEqual(rsp['stat'], 'ok') self.assertEqual(rsp['general_comment']['issue_status'], 'resolved')
def test_put_with_issue(self): """Testing the PUT review-requests/<id>/reviews/<id>/general-comments/<id>/ API with an issue, removing issue_opened """ comment, review, review_request = \ self._create_general_review_with_issue() rsp = self.api_put(get_review_general_comment_item_url( review, comment.pk), {'issue_opened': False}, expected_mimetype=general_comment_item_mimetype) self.assertEqual(rsp['stat'], 'ok') self.assertFalse(rsp['general_comment']['issue_opened'])
def test_put_issue_status_after_publish(self): """Testing the PUT review-requests/<id>/reviews/<id>/general-comments/<id>/ API with an issue, after review is published """ comment, review, review_request = \ self._create_general_review_with_issue(publish=True) rsp = self.api_put( get_review_general_comment_item_url(review, comment.pk), {'issue_status': 'resolved'}, expected_mimetype=general_comment_item_mimetype) self.assertEqual(rsp['stat'], 'ok') self.assertEqual(rsp['general_comment']['issue_status'], 'resolved')
def test_put_with_issue(self): """Testing the PUT review-requests/<id>/reviews/<id>/general-comments/<id>/ API with an issue, removing issue_opened """ comment, review, review_request = \ self._create_general_review_with_issue() rsp = self.api_put( get_review_general_comment_item_url(review, comment.pk), {'issue_opened': False}, expected_mimetype=general_comment_item_mimetype) self.assertEqual(rsp['stat'], 'ok') self.assertFalse(rsp['general_comment']['issue_opened'])
def test_put_issue_status_before_publish(self): """Testing the PUT review-requests/<id>/reviews/<id>/general-comments/<id> API with an issue, before review is published """ comment, review, review_request = \ self._create_general_review_with_issue() # The issue_status should not be able to be changed while the review is # unpublished. rsp = self.api_put(get_review_general_comment_item_url( review, comment.pk), {'issue_status': 'resolved'}, expected_mimetype=general_comment_item_mimetype) self.assertEqual(rsp['stat'], 'ok') # The issue_status should still be "open" self.assertEqual(rsp['general_comment']['issue_status'], 'open')
def test_put_issue_status_before_publish(self): """Testing the PUT review-requests/<id>/reviews/<id>/general-comments/<id> API with an issue, before review is published """ comment, review, review_request = \ self._create_general_review_with_issue() # The issue_status should not be able to be changed while the review is # unpublished. rsp = self.api_put( get_review_general_comment_item_url(review, comment.pk), {'issue_status': 'resolved'}, expected_mimetype=general_comment_item_mimetype) self.assertEqual(rsp['stat'], 'ok') # The issue_status should still be "open" self.assertEqual(rsp['general_comment']['issue_status'], 'open')
def test_put_issue_status_by_issue_creator(self): """Testing the PUT review-requests/<id>/reviews/<id>/general-comments/<id>/ API permissions for issue creator """ comment, review, review_request = \ self._create_general_review_with_issue(publish=True) # Change the owner of the review request so that it's not owned by # self.user review_request.submitter = User.objects.get(username='******') review_request.save() # The review/comment (and therefore issue) is still owned by self.user, # so we should be able to change the issue status. rsp = self.api_put(get_review_general_comment_item_url( review, comment.pk), {'issue_status': 'dropped'}, expected_mimetype=general_comment_item_mimetype) self.assertEqual(rsp['stat'], 'ok') self.assertEqual(rsp['general_comment']['issue_status'], 'dropped')
def test_put_issue_status_by_issue_creator(self): """Testing the PUT review-requests/<id>/reviews/<id>/general-comments/<id>/ API permissions for issue creator """ comment, review, review_request = \ self._create_general_review_with_issue(publish=True) # Change the owner of the review request so that it's not owned by # self.user review_request.submitter = User.objects.get(username='******') review_request.save() # The review/comment (and therefore issue) is still owned by self.user, # so we should be able to change the issue status. rsp = self.api_put( get_review_general_comment_item_url(review, comment.pk), {'issue_status': 'dropped'}, expected_mimetype=general_comment_item_mimetype) self.assertEqual(rsp['stat'], 'ok') self.assertEqual(rsp['general_comment']['issue_status'], 'dropped')
def test_put_issue_status_by_uninvolved_user(self): """Testing the PUT review-requests/<id>/reviews/<id>/general-comments/<id>/ API permissions for an uninvolved user """ comment, review, review_request = \ self._create_general_review_with_issue(publish=True) # Change the owner of the review request and review so that they're not # owned by self.user. new_owner = User.objects.get(username='******') review_request.submitter = new_owner review_request.save() review.user = new_owner review.save() rsp = self.api_put(get_review_general_comment_item_url( review, comment.pk), {'issue_status': 'dropped'}, expected_status=403) self.assertEqual(rsp['stat'], 'fail') self.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
def test_put_issue_status_by_uninvolved_user(self): """Testing the PUT review-requests/<id>/reviews/<id>/general-comments/<id>/ API permissions for an uninvolved user """ comment, review, review_request = \ self._create_general_review_with_issue(publish=True) # Change the owner of the review request and review so that they're not # owned by self.user. new_owner = User.objects.get(username='******') review_request.submitter = new_owner review_request.save() review.user = new_owner review.save() rsp = self.api_put( get_review_general_comment_item_url(review, comment.pk), {'issue_status': 'dropped'}, expected_status=403) self.assertEqual(rsp['stat'], 'fail') self.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
def setup_review_request_child_test(self, review_request): review = self.create_review(review_request, user=self.user) comment = self.create_general_comment(review) return (get_review_general_comment_item_url(review, comment.pk), general_comment_item_mimetype)