Ejemplo n.º 1
0
    def test_check_url_is_false_for_malformed_url(self):
        url = self.base_url + "check_url/"
        data = {"url": "bitcoin.org/bitcoin.pdf/"}
        response = get_authenticated_post_response(self.user, url, data)
        self.assertContains(response, "false", status_code=200)

        data = {"url": "bitcoin"}
        response = get_authenticated_post_response(self.user, url, data)
        self.assertContains(response, "false", status_code=200)
Ejemplo n.º 2
0
 def get_propose_edit_post_response(self, user):
     url = '/api/summary/propose_edit/'
     data = None
     return get_authenticated_post_response(user,
                                            url,
                                            data,
                                            content_type='application/json')
 def get_summary_post_response(self, user, paper_id):
     url = '/api/summary/'
     data = {'paper': paper_id, 'summary': 'summary text'}
     return get_authenticated_post_response(user,
                                            url,
                                            data,
                                            content_type='application/json')
 def get_thread_post_response(self, user):
     url = build_discussion_default_url(self, 'thread')
     form_data = build_thread_form(self.paper.id, 'Permission Thread',
                                   'test permissions thread')
     response = get_authenticated_post_response(
         user, url, form_data, content_type='multipart/form-data')
     return response
Ejemplo n.º 5
0
 def get_summary_post_response(self, user, paper_id=None):
     if paper_id is None:
         paper_id = self.paper.id
     url = self.base_url
     data = build_summary_data(self.summary_text, paper_id, None)
     response = get_authenticated_post_response(
         user, url, data, content_type='application/json')
     return response
Ejemplo n.º 6
0
 def get_thread_submission_response(self, user):
     paper = self.create_paper_without_authors()
     paper_id = paper.id
     url = self.base_url + f'{paper_id}/discussion/'
     form_data = self.build_default_thread_form(paper_id)
     response = get_authenticated_post_response(
         user, url, form_data, content_type='multipart/form-data')
     return response
Ejemplo n.º 7
0
    def get_upvote_response(self, user, thread):
        url = self.base_url + (
            f'{thread.paper.id}/discussion/{thread.id}/upvote/')

        data = {}

        response = get_authenticated_post_response(
            user, url, data, content_type='application/json')
        return response
Ejemplo n.º 8
0
 def test_search_by_url_unsupported_pdf(self):
     url = self.base_url + "search_by_url/"
     data = {"url": "https://bitcoin.org/bitcoin.pdf"}
     response = get_authenticated_post_response(self.user, url, data)
     self.assertEquals(response.status_code, 200)
     result = response.data
     self.assertTrue(result["url_is_pdf"])
     self.assertTrue(result["url_is_unsupported_pdf"])
     self.assertEqual(result["csl_item"]["URL"], data["url"])
     self.assertEqual(result["oa_pdf_location"]["url_for_pdf"], data["url"])
 def get_hub_post_response(self, user):
     url = self.base_url + 'hub/'
     data = build_hub_data('Permission Hub')
     response = get_authenticated_post_response(
         user,
         url,
         data,
         content_type='application/json'
     )
     return response
Ejemplo n.º 10
0
 def get_flag_response(self, user):
     url = self.base_url + f'{self.paper.id}/flag/'
     data = {'reason': self.flag_reason}
     response = get_authenticated_post_response(
         user,
         url,
         data,
         content_type='application/json'
     )
     return response
Ejemplo n.º 11
0
 def get_paper_submission_response(self, user):
     url = self.base_url
     form_data = self.build_paper_form()
     response = get_authenticated_post_response(
         user,
         url,
         form_data,
         content_type='multipart/form-data'
     )
     return response
Ejemplo n.º 12
0
 def get_downvote_response(self, user):
     url = self.base_url + f'{self.paper.id}/downvote/'
     data = {}
     response = get_authenticated_post_response(
         user,
         url,
         data,
         content_type='application/json'
     )
     return response
Ejemplo n.º 13
0
    def test_bounce_notification_blacklists_email(self):
        url = '/email_notifications/'
        data = self.build_bounce_request_data()
        response = get_authenticated_post_response(self.user,
                                                   url,
                                                   data,
                                                   content_type='plain/text')
        self.assertContains(response, '{}', status_code=200)

        recipient = EmailRecipient.objects.get(email=self.bounced_email)
        self.assertTrue(recipient.do_not_email)
Ejemplo n.º 14
0
 def get_assign_moderator_response(self, user, paper):
     url = self.base_url + f'{paper.id}/assign_moderator/'
     random_user = self.create_random_authenticated_user('random')
     data = {'moderators': random_user.id}
     response = get_authenticated_post_response(
         user,
         url,
         data,
         content_type='application/json'
     )
     return response
 def get_post_response(self, user, data=None):
     url = self.base_url
     if data is None:
         data = {
             'paper': self.paper.id,
             'text': 'Hello, world',
             'plain_text': 'Hello, world'
         }
     response = get_authenticated_post_response(
         user, url, data, content_type='application/json')
     return response
Ejemplo n.º 16
0
 def get_thread_submission_response(self, paper_id):
     user = self.create_random_authenticated_user('unique_value')
     url = self.base_url + f'{paper_id}/discussion/'
     form_data = self.build_default_thread_form(paper_id)
     response = get_authenticated_post_response(
         user,
         url,
         form_data,
         content_type='multipart/form-data'
     )
     return response
Ejemplo n.º 17
0
    def get_comment_post_response(self, user):
        thread = self.create_default_thread()
        thread_id = thread.id

        paper_id = thread.paper.id

        url = self.base_url + f'{paper_id}/discussion/{thread_id}/comment/'

        form_data = self.build_default_comment_form(thread_id)

        response = get_authenticated_post_response(
            user, url, form_data, content_type='multipart/form-data')
        return response
Ejemplo n.º 18
0
 def test_api_token_can_upload_paper(self):
     api_token_url = "/api/user_external_token/"
     api_token_response = get_authenticated_post_response(
         self.user, api_token_url, {})
     token = api_token_response.json().get("token", "")
     api_token_client = Client(HTTP_RH_API_KEY=token)
     res = api_token_client.post(
         self.base_url,
         {
             "title": "Paper Uploaded via API Token",
             "paper_type": "REGULAR"
         },
     )
     self.assertEquals(res.status_code, 201)
Ejemplo n.º 19
0
 def test_search_by_url_publisher(self):
     url = self.base_url + "search_by_url/"
     data = {"url": "https://www.nature.com/articles/s41586-019-1099-1"}
     response = get_authenticated_post_response(self.user, url, data)
     self.assertEquals(response.status_code, 200)
     result = response.data
     self.assertEquals(result["url"], data["url"])
     self.assertFalse(result["url_is_pdf"])
     self.assertFalse(result["url_is_unsupported_pdf"])
     self.assertEquals(
         result["csl_item"]["title"],
         "Restoration of brain circulation and cellular functions hours post-mortem",
     )  # noqa E501
     self.assertEquals(result["csl_item"]["DOI"],
                       "10.1038/s41586-019-1099-1")
Ejemplo n.º 20
0
 def test_search_by_url_pmid(self):
     """
     Search by PMID without a DOI from an inactive journal
     """
     url = self.base_url + "search_by_url/"
     data = {"url": "https://www.ncbi.nlm.nih.gov/pubmed/18888140"}
     response = get_authenticated_post_response(self.user, url, data)
     self.assertEquals(response.status_code, 200)
     result = response.data
     self.assertEquals(result["url"], data["url"])
     self.assertFalse(result["url_is_pdf"])
     self.assertFalse(result["url_is_unsupported_pdf"])
     self.assertEquals(
         result["csl_item"]["title"],
         "[Major achievements in the second plan year in the Soviet Union].",
     )  # noqa E501
     self.assertIsNone(result["oa_pdf_location"])
Ejemplo n.º 21
0
 def test_search_by_url_arxiv(self):
     url = self.base_url + "search_by_url/"
     data = {"url": "https://arxiv.org/abs/1407.3561v1", "search": True}
     response = get_authenticated_post_response(self.user, url, data)
     self.assertEquals(response.status_code, 200)
     result = response.data
     self.assertEquals(result["url"], data["url"])
     self.assertFalse(result["url_is_pdf"])
     self.assertEquals(
         result["csl_item"]["title"],
         "IPFS - Content Addressed, Versioned, P2P File System",
     )
     self.assertEqual(
         result["oa_pdf_location"]["url_for_pdf"],
         "https://arxiv.org/pdf/1407.3561v1.pdf",
     )
     self.assertIsInstance(result["search"], list)
Ejemplo n.º 22
0
 def test_search_by_url_doi(self):
     url = self.base_url + "search_by_url/"
     data = {"url": "https://doi.org/10.1038/ng.3259"}
     response = get_authenticated_post_response(self.user, url, data)
     self.assertEquals(response.status_code, 200)
     result = response.data
     self.assertEquals(result["url"], data["url"])
     self.assertFalse(result["url_is_pdf"])
     self.assertFalse(result["url_is_unsupported_pdf"])
     self.assertEquals(
         result["csl_item"]["title"],
         "Understanding multicellular function and disease with human tissue-specific networks",
     )  # noqa E501
     self.assertEquals(result["csl_item"]["DOI"], "10.1038/ng.3259")
     self.assertEquals(
         result["oa_pdf_location"]["url_for_pdf"],
         "http://europepmc.org/articles/pmc4828725?pdf=render",
     )
Ejemplo n.º 23
0
 def test_search_by_url_arxiv_pdf(self):
     url = self.base_url + "search_by_url/"
     data = {"url": "https://arxiv.org/pdf/1407.3561.pdf"}
     response = get_authenticated_post_response(self.user, url, data)
     self.assertEquals(response.status_code, 200)
     result = response.data
     self.assertEquals(result["url"], data["url"])
     self.assertTrue(result["url_is_pdf"])
     self.assertFalse(result["url_is_unsupported_pdf"])
     self.assertEquals(
         result["csl_item"]["title"],
         "IPFS - Content Addressed, Versioned, P2P File System",
     )
     pdf_location = result["oa_pdf_location"]
     self.assertEqual(pdf_location["url_for_pdf"],
                      "https://arxiv.org/pdf/1407.3561.pdf")
     self.assertEqual(pdf_location["license"], "cc-by")
     self.assertEqual(pdf_location["url_for_landing_page"],
                      "https://arxiv.org/abs/1407.3561")
     self.assertFalse("search" in result)
Ejemplo n.º 24
0
 def get_invite_to_hub_response(self, user, hub, emails):
     url = self.base_url + f'{hub.id}/invite_to_hub/'
     data = {'emails': emails}
     return get_authenticated_post_response(
         user, url, data, headers={'HTTP_ORIGIN': 'researchhub.com'})
Ejemplo n.º 25
0
 def get_hub_response(self, url, user):
     data = None
     return get_authenticated_post_response(user, url, data)
Ejemplo n.º 26
0
 def get_withdrawals_post_response(self, user):
     url = '/api/withdrawal/'
     return get_authenticated_post_response(user, url, {})
Ejemplo n.º 27
0
 def test_search_by_url_bad(self):
     url = self.base_url + "search_by_url/"
     data = {"url": "org/this-is-a-bad-url"}
     response = get_authenticated_post_response(self.user, url, data)
     self.assertContains(response, "Double check that URL", status_code=400)
Ejemplo n.º 28
0
 def get_bookmark_post_response(self, user):
     url = self.base_url + f"{self.paper.id}/bookmark/"
     data = None
     response = get_authenticated_post_response(
         user, url, data, content_type="application/json")
     return response
Ejemplo n.º 29
0
 def test_check_url_is_false_if_url_does_NOT_have_pdf(self):
     url = self.base_url + "check_url/"
     data = {"url": "https://bitcoin.org/en/"}
     response = get_authenticated_post_response(self.user, url, data)
     self.assertContains(response, "false", status_code=200)
Ejemplo n.º 30
0
 def test_check_url_is_true_if_url_has_pdf(self):
     url = self.base_url + "check_url/"
     data = {"url": "https://bitcoin.org/bitcoin.pdf"}
     response = get_authenticated_post_response(self.user, url, data)
     self.assertContains(response, "true", status_code=200)