def setup_basic_get_test(self, user, with_local_site, local_site_name): review_request = self.create_review_request( create_repository=True, with_local_site=with_local_site, submitter=user ) diffset = self.create_diffset(review_request) return (get_diff_item_url(review_request, diffset.revision, local_site_name), diff_item_mimetype, diffset)
def test_get_not_modified(self): """Testing the GET review-requests/<id>/diffs/<revision>/ API with Not Modified response """ review_request = self.create_review_request(create_repository=True, publish=True) diffset = self.create_diffset(review_request) self._testHttpCaching(get_diff_item_url(review_request, diffset.revision), check_last_modified=True)
def setup_review_request_child_test(self, review_request): if not review_request.repository: review_request.repository = self.create_repository() review_request.save() diffset = self.create_diffset(review_request) return (get_diff_item_url(review_request, diffset.revision), diff_item_mimetype)
def test_get_diff_not_modified(self): """Testing the GET review-requests/<id>/diffs/<revision>/ API with Not Modified response""" review_request = self.create_review_request(create_repository=True, publish=True) diffset = self.create_diffset(review_request) self._testHttpCaching(get_diff_item_url(review_request, diffset.revision), check_last_modified=True)
def test_get_diff_with_site_no_access(self): """Testing the GET review-requests/<id>/diffs/<revision>/ API with a local site and Permission Denied error""" review_request = self.create_review_request(create_repository=True, with_local_site=True, publish=True) diffset = self.create_diffset(review_request) self.apiGet(get_diff_item_url(review_request, diffset.revision, self.local_site_name), expected_status=403)
def setup_basic_get_test(self, user, with_local_site, local_site_name): review_request = self.create_review_request( create_repository=True, with_local_site=with_local_site, submitter=user) diffset = self.create_diffset(review_request) return (get_diff_item_url(review_request, diffset.revision, local_site_name), diff_item_mimetype, diffset)
def test_get_diff(self): """Testing the GET review-requests/<id>/diffs/<revision>/ API""" review_request = self.create_review_request(create_repository=True, publish=True) diffset = self.create_diffset(review_request) rsp = self.apiGet(get_diff_item_url(review_request, diffset.revision), expected_mimetype=diff_item_mimetype) self.assertEqual(rsp['stat'], 'ok') self.assertEqual(rsp['diff']['id'], diffset.pk) self.assertEqual(rsp['diff']['name'], diffset.name)
def test_get(self): """Testing the GET review-requests/<id>/diffs/<revision>/ API""" review_request = self.create_review_request(create_repository=True, publish=True) diffset = self.create_diffset(review_request) rsp = self.apiGet(get_diff_item_url(review_request, diffset.revision), expected_mimetype=diff_item_mimetype) self.assertEqual(rsp['stat'], 'ok') self.assertEqual(rsp['diff']['id'], diffset.pk) self.assertEqual(rsp['diff']['name'], diffset.name)
def test_get_diff_with_site(self): """Testing the GET review-requests/<id>/diffs/<revision>/ API with a local site""" review_request = self.create_review_request(create_repository=True, with_local_site=True, publish=True) diffset = self.create_diffset(review_request) self._login_user(local_site=True) rsp = self.apiGet(get_diff_item_url(review_request, diffset.revision, self.local_site_name), expected_mimetype=diff_item_mimetype) self.assertEqual(rsp['stat'], 'ok') self.assertEqual(rsp['diff']['id'], diffset.id) self.assertEqual(rsp['diff']['name'], diffset.name)
def test_get_links_dvcs_enabled(self): """Testing the GET <URL> API does includes a link to the DiffCommit resource when the DVCS feature is enabled """ review_request = self.create_review_request(create_repository=True, publish=True) diffset = self.create_diffset(review_request) with override_feature_check(dvcs_feature.feature_id, enabled=True): rsp = self.api_get(get_diff_item_url(review_request, diffset.revision), expected_mimetype=diff_item_mimetype) self.assertEqual(rsp['stat'], 'ok') self.assertIn('diff', rsp) item_rsp = rsp['diff'] self.assertIn('links', item_rsp)
def test_get_links_fields_dvcs_disabled(self): """Testing the GET <URL> API does not includes DVCS-specific fields and links when the DVCS feature is enabled """ review_request = self.create_review_request(create_repository=True, publish=True) diffset = self.create_diffset(review_request) with override_feature_check(dvcs_feature.feature_id, enabled=False): rsp = self.api_get(get_diff_item_url(review_request, diffset.revision), expected_mimetype=diff_item_mimetype) self.assertEqual(rsp['stat'], 'ok') self.assertIn('diff', rsp) item_rsp = rsp['diff'] self.assertIn('links', item_rsp) self.assertNotIn('commits', item_rsp['links']) self.assertNotIn('commit_count', item_rsp)
def test_get_with_patch_and_commit_history(self): """Testing the GET <API> API with Accept: x-patch and commit history contains only cumulative diff """ review_request = self.create_review_request(create_repository=True, publish=True) diffset = self.create_diffset(review_request=review_request) self.create_diffcommit( diffset=diffset, commit_id='r1', parent_id='r0', diff_contents=( b'diff --git a/ABC b/ABC\n' b'index 94bdd3e..197009f 100644\n' b'--- ABC\n' b'+++ ABC\n' b'@@ -1,1 +1,1 @@\n' b'-line!\n' b'+line..\n' )) self.create_diffcommit( diffset=diffset, commit_id='r2', parent_id='r1', diff_contents=( b'diff --git a/README b/README\n' b'index 94bdd3e..197009f 100644\n' b'--- README\n' b'+++ README\n' b'@@ -1,1 +1,1 @@\n' b'-Hello, world!\n' b'+Hi, world!\n' )) self.create_diffcommit( diffset=diffset, commit_id='r4', parent_id='r3', diff_contents=( b'diff --git a/README b/README\n' b'index 197009f..87abad9 100644\n' b'--- README\n' b'+++ README\n' b'@@ -1,1 +1,1 @@\n' b'-Hi, world!\n' b'+Yo, world.\n' )) cumulative_diff = ( b'diff --git a/ABC b/ABC\n' b'index 94bdd3e..197009f 100644\n' b'--- ABC\n' b'+++ ABC\n' b'@@ -1,1 +1,1 @@\n' b'-line!\n' b'+line..\n' b'diff --git a/README b/README\n' b'index 94bdd3e..87abad9 100644\n' b'--- README\n' b'+++ README\n' b'@@ -1,1 +1,1 @@\n' b'-Hello, world!\n' b'+Yo, world.\n' ) diffset.finalize_commit_series( cumulative_diff=cumulative_diff, validation_info=None, validate=False, save=True) with override_feature_check(dvcs_feature.feature_id, enabled=True): rsp = self.api_get(get_diff_item_url(review_request, diffset.revision), HTTP_ACCEPT='text/x-patch', expected_json=False, expected_mimetype='text/x-patch') self.assertEqual(rsp, cumulative_diff)
def setup_http_not_allowed_item_test(self, user): review_request = self.create_review_request(create_repository=True, publish=True) return get_diff_item_url(review_request, 1)