def _postNewScreenshotComment(self, review_request, review_id, screenshot, comment_text, x, y, w, h, issue_opened=None, issue_status=None): """Creates a screenshot comment and returns the payload response.""" if review_request.local_site: local_site_name = review_request.local_site.name else: local_site_name = None post_data = { 'screenshot_id': screenshot.id, 'text': comment_text, 'x': x, 'y': y, 'w': w, 'h': h, } if issue_opened is not None: post_data['issue_opened'] = issue_opened if issue_status is not None: post_data['issue_status'] = issue_status review = Review.objects.get(pk=review_id) rsp = self.api_post( get_review_screenshot_comment_list_url(review, local_site_name), post_data, expected_mimetype=screenshot_comment_item_mimetype) self.assertEqual(rsp['stat'], 'ok') return rsp
def test_delete_screenshot_comment_with_local_site(self): """Testing the DELETE review-requests/<id>/reviews/<id>/screenshot-comments/<id> API with a local site""" comment_text = 'This is a test comment.' x, y, w, h = (2, 2, 10, 10) user = self._login_user(local_site=True) review_request = self.create_review_request(with_local_site=True, publish=True) screenshot = self.create_screenshot(review_request) review = self.create_review(review_request, user=user) rsp = self._postNewScreenshotComment(review_request, review.id, screenshot, comment_text, x, y, w, h) self.apiDelete(rsp['screenshot_comment']['links']['self']['href']) rsp = self.apiGet( get_review_screenshot_comment_list_url(review, self.local_site_name), expected_mimetype=screenshot_comment_list_mimetype) self.assertEqual(rsp['stat'], 'ok') self.assertTrue('screenshot_comments' in rsp) self.assertEqual(len(rsp['screenshot_comments']), 0)
def test_post_with_extra_fields(self): """Testing the POST review-requests/<id>/reviews/<id>/screenshots-comments/ API with extra fields """ comment_text = "This is a test comment." extra_fields = {"extra_data.foo": "123", "extra_data.bar": "456", "extra_data.baz": "", "ignored": "foo"} # Post the review request. review_request = self.create_review_request(submitter=self.user, publish=True) screenshot = self.create_screenshot(review_request) # Post the review. review = self.create_review(review_request, user=self.user) rsp = self.apiPost( get_review_screenshot_comment_list_url(review), dict( {"screenshot_id": screenshot.pk, "text": comment_text, "x": 5, "y": 5, "w": 10, "h": 10}, **extra_fields ), expected_mimetype=screenshot_comment_item_mimetype, ) comment = ScreenshotComment.objects.get(pk=rsp["screenshot_comment"]["id"]) self.assertTrue("foo" in comment.extra_data) self.assertTrue("bar" in comment.extra_data) self.assertFalse("baz" in comment.extra_data) self.assertFalse("ignored" in comment.extra_data) self.assertEqual(comment.extra_data["foo"], extra_fields["extra_data.foo"]) self.assertEqual(comment.extra_data["bar"], extra_fields["extra_data.bar"])
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) screenshot = self.create_screenshot(review_request) review = self.create_review(review_request, user=user) return ( get_review_screenshot_comment_list_url(review, local_site_name), screenshot_comment_item_mimetype, {"screenshot_id": screenshot.pk, "text": "Test comment", "x": 2, "y": 2, "w": 10, "h": 10}, [review, screenshot], )
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) screenshot = self.create_screenshot(review_request) review = self.create_review(review_request, user=user) if populate_items: items = [self.create_screenshot_comment(review, screenshot)] else: items = [] return (get_review_screenshot_comment_list_url(review, local_site_name), screenshot_comment_list_mimetype, items)
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) screenshot = self.create_screenshot(review_request) review = self.create_review(review_request, user=user) if populate_items: items = [self.create_screenshot_comment(review, screenshot)] else: items = [] return ( get_review_screenshot_comment_list_url(review, local_site_name), screenshot_comment_list_mimetype, items, )
def test_post_screenshot_comment_with_issue(self): """Testing the POST review-requests/<id>/reviews/<id>/screenshot-comments/ API with an issue""" comment_text = "Test screenshot comment with an opened issue" rsp, review, review_request = \ self._create_screenshot_review_with_issue( publish=False, comment_text=comment_text) rsp = self.apiGet( get_review_screenshot_comment_list_url(review), expected_mimetype=screenshot_comment_list_mimetype) self.assertEqual(rsp['stat'], 'ok') self.assertTrue('screenshot_comments' in rsp) self.assertEqual(len(rsp['screenshot_comments']), 1) self.assertEqual(rsp['screenshot_comments'][0]['text'], comment_text) self.assertTrue(rsp['screenshot_comments'][0]['issue_opened'])
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) screenshot = self.create_screenshot(review_request) review = self.create_review(review_request, user=user) return (get_review_screenshot_comment_list_url(review, local_site_name), screenshot_comment_item_mimetype, { 'screenshot_id': screenshot.pk, 'text': 'Test comment', 'x': 2, 'y': 2, 'w': 10, 'h': 10, }, [review, screenshot])
def test_post_with_issue(self): """Testing the POST review-requests/<id>/reviews/<id>/screenshot-comments/ API with an issue """ comment_text = "Test screenshot comment with an opened issue" comment, review, review_request = self._create_screenshot_review_with_issue( publish=False, comment_text=comment_text ) rsp = self.apiGet( get_review_screenshot_comment_list_url(review), expected_mimetype=screenshot_comment_list_mimetype ) self.assertEqual(rsp["stat"], "ok") self.assertTrue("screenshot_comments" in rsp) self.assertEqual(len(rsp["screenshot_comments"]), 1) self.assertEqual(rsp["screenshot_comments"][0]["text"], comment_text) self.assertTrue(rsp["screenshot_comments"][0]["issue_opened"])
def test_post_with_extra_fields(self): """Testing the POST review-requests/<id>/reviews/<id>/screenshots-comments/ API with extra fields """ comment_text = "This is a test comment." extra_fields = { 'extra_data.foo': '123', 'extra_data.bar': '456', 'extra_data.baz': '', 'ignored': 'foo', } # Post the review request. review_request = self.create_review_request(submitter=self.user, publish=True) screenshot = self.create_screenshot(review_request) # Post the review. review = self.create_review(review_request, user=self.user) rsp = self.apiPost( get_review_screenshot_comment_list_url(review), dict({ 'screenshot_id': screenshot.pk, 'text': comment_text, 'x': 5, 'y': 5, 'w': 10, 'h': 10, }, **extra_fields), expected_mimetype=screenshot_comment_item_mimetype) comment = ScreenshotComment.objects.get( pk=rsp['screenshot_comment']['id']) self.assertTrue('foo' in comment.extra_data) self.assertTrue('bar' in comment.extra_data) self.assertFalse('baz' in comment.extra_data) self.assertFalse('ignored' in comment.extra_data) self.assertEqual(comment.extra_data['foo'], extra_fields['extra_data.foo']) self.assertEqual(comment.extra_data['bar'], extra_fields['extra_data.bar'])
def test_post_with_extra_fields(self): """Testing the POST review-requests/<id>/reviews/<id>/screenshots-comments/ API with extra fields """ comment_text = "This is a test comment." extra_fields = { 'extra_data.foo': '123', 'extra_data.bar': '456', 'extra_data.baz': '', 'ignored': 'foo', } # Post the review request. review_request = self.create_review_request(submitter=self.user, publish=True) screenshot = self.create_screenshot(review_request) # Post the review. review = self.create_review(review_request, user=self.user) rsp = self.apiPost(get_review_screenshot_comment_list_url(review), dict( { 'screenshot_id': screenshot.pk, 'text': comment_text, 'x': 5, 'y': 5, 'w': 10, 'h': 10, }, **extra_fields), expected_mimetype=screenshot_comment_item_mimetype) comment = ScreenshotComment.objects.get( pk=rsp['screenshot_comment']['id']) self.assertTrue('foo' in comment.extra_data) self.assertTrue('bar' in comment.extra_data) self.assertFalse('baz' in comment.extra_data) self.assertFalse('ignored' in comment.extra_data) self.assertEqual(comment.extra_data['foo'], extra_fields['extra_data.foo']) self.assertEqual(comment.extra_data['bar'], extra_fields['extra_data.bar'])
def test_delete(self): """Testing the DELETE review-requests/<id>/reviews/<id>/screenshot-comments/<id>/ API """ comment_text = "This is a test comment." x, y, w, h = (2, 2, 10, 10) review_request = self.create_review_request(publish=True) screenshot = self.create_screenshot(review_request) review = self.create_review(review_request, user=self.user) comment = self.create_screenshot_comment(review, screenshot, comment_text, x, y, w, h) self.apiDelete(get_review_screenshot_comment_item_url(review, comment.pk)) rsp = self.apiGet( get_review_screenshot_comment_list_url(review), expected_mimetype=screenshot_comment_list_mimetype ) self.assertEqual(rsp["stat"], "ok") self.assertTrue("screenshot_comments" in rsp) self.assertEqual(len(rsp["screenshot_comments"]), 0)
def test_delete_screenshot_comment(self): """Testing the DELETE review-requests/<id>/reviews/<id>/screenshot-comments/<id>/ API""" comment_text = "This is a test comment." x, y, w, h = (2, 2, 10, 10) review_request = self.create_review_request(publish=True) screenshot = self.create_screenshot(review_request) review = self.create_review(review_request, user=self.user) rsp = self._postNewScreenshotComment(review_request, review.id, screenshot, comment_text, x, y, w, h) self.apiDelete(rsp['screenshot_comment']['links']['self']['href']) rsp = self.apiGet( get_review_screenshot_comment_list_url(review), expected_mimetype=screenshot_comment_list_mimetype) self.assertEqual(rsp['stat'], 'ok') self.assertTrue('screenshot_comments' in rsp) self.assertEqual(len(rsp['screenshot_comments']), 0)
def test_post_screenshot_comments_with_site_no_access(self): """Testing the POST review-requests/<id>/reviews/<id>/screenshot-comments/ API with a local site and Permission Denied error""" x, y, w, h = (2, 2, 10, 10) user = self._login_user(local_site=True) review_request = self.create_review_request(with_local_site=True, create_repository=True, publish=True) screenshot = self.create_screenshot(review_request) review = self.create_review(review_request, user=user) self._login_user() rsp = self.apiPost( get_review_screenshot_comment_list_url(review, self.local_site_name), {'screenshot_id': screenshot.id}, expected_status=403) self.assertEqual(rsp['stat'], 'fail') self.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
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) screenshot = self.create_screenshot(review_request) review = self.create_review(review_request, user=user) return (get_review_screenshot_comment_list_url(review, local_site_name), screenshot_comment_item_mimetype, { 'screenshot_id': screenshot.pk, 'text': 'Test comment', 'x': 2, 'y': 2, 'w': 10, 'h': 10, }, [review, screenshot])
def test_delete_with_local_site(self): """Testing the DELETE review-requests/<id>/reviews/<id>/screenshot-comments/<id> API with a local site """ comment_text = "This is a test comment." x, y, w, h = (2, 2, 10, 10) user = self._login_user(local_site=True) review_request = self.create_review_request(with_local_site=True, publish=True) screenshot = self.create_screenshot(review_request) review = self.create_review(review_request, user=user) comment = self.create_screenshot_comment(review, screenshot, comment_text, x, y, w, h) self.apiDelete(get_review_screenshot_comment_item_url(review, comment.pk, self.local_site_name)) rsp = self.apiGet( get_review_screenshot_comment_list_url(review, self.local_site_name), expected_mimetype=screenshot_comment_list_mimetype, ) self.assertEqual(rsp["stat"], "ok") self.assertTrue("screenshot_comments" in rsp) self.assertEqual(len(rsp["screenshot_comments"]), 0)
def setup_review_request_child_test(self, review_request): self.create_screenshot(review_request) review = self.create_review(review_request, user=self.user) return (get_review_screenshot_comment_list_url(review), screenshot_comment_list_mimetype)
def setup_review_request_child_test(self, review_request): self.create_screenshot(review_request) review = self.create_review(review_request, user=self.user) return (get_review_screenshot_comment_list_url(review), screenshot_comment_list_mimetype)