예제 #1
0
 def test_ejp_ingest_data(self):
     ejp_ingestor.import_article_list_from_json_path(self.journal, self.tiny_json_path)
     self.assertEqual(models.Article.objects.count(), 6)
     art = models.Article.objects.get(manuscript_id=11835)
     expected_data = {
         "manuscript_id": 11835,
         "ejp_type": "RA",
         "date_initial_qc": parse("2015-09-24T00:00:00"),
         "date_initial_decision": parse("2015-10-05T00:00:00"),
         "initial_decision": "EF",
         "date_full_qc": parse("2015-10-23T00:00:00"),
         "date_full_decision": parse("2015-11-16T00:00:00"),
         "decision": "RVF",
         "date_rev1_qc": parse("2016-02-23T00:00:00"),
         "date_rev1_decision": parse("2016-02-24T00:00:00"),
         "rev1_decision": "RVF",
         "date_rev2_qc": parse("2016-03-08T00:00:00"),
         "date_rev2_decision": parse("2016-03-14T00:00:00"),
         "rev2_decision": "AF",
         "date_rev3_qc": None,
         "date_rev3_decision": None,
         "rev3_decision": None,
         "date_rev4_qc": None,
         "date_rev4_decision": None,
         "rev4_decision": None
     }
     for key, val in expected_data.items():
         self.assertEqual(getattr(art, key), val)
예제 #2
0
 def test_ejp_ingest_over_existing_data(self):
     "importing ejp articles and updating existing articles is possible but only if we explicitly say so"
     self.assertEqual(models.Article.objects.count(), 0)
     article_data_list = [
         {
             'manuscript_id': 123,
             'journal': self.journal
         },
         {
             'manuscript_id': 11835,
             'journal': self.journal
         },
         {
             'manuscript_id': 321,
             'journal': self.journal
         },
     ]
     [
         self.add_or_update_article(**article_data)
         for article_data in article_data_list
     ]
     self.assertEqual(models.Article.objects.count(), 3)
     ejp_ingestor.import_article_list_from_json_path(self.journal,
                                                     self.tiny_json_path,
                                                     update=True)
     self.assertEqual(models.Article.objects.count(), 8)
     art = models.Article.objects.get(manuscript_id=11835)
     self.assertTrue(art.initial_decision)
예제 #3
0
 def test_ejp_ingest_data(self):
     ejp_ingestor.import_article_list_from_json_path(
         self.journal, self.tiny_json_path)
     self.assertEqual(models.Article.objects.count(), 6)
     art = models.Article.objects.get(manuscript_id=11835)
     expected_data = {
         "manuscript_id": 11835,
         "ejp_type": "RA",
         "date_initial_qc": parse("2015-09-24T00:00:00"),
         "date_initial_decision": parse("2015-10-05T00:00:00"),
         "initial_decision": "EF",
         "date_full_qc": parse("2015-10-23T00:00:00"),
         "date_full_decision": parse("2015-11-16T00:00:00"),
         "decision": "RVF",
         "date_rev1_qc": parse("2016-02-23T00:00:00"),
         "date_rev1_decision": parse("2016-02-24T00:00:00"),
         "rev1_decision": "RVF",
         "date_rev2_qc": parse("2016-03-08T00:00:00"),
         "date_rev2_decision": parse("2016-03-14T00:00:00"),
         "rev2_decision": "AF",
         "date_rev3_qc": None,
         "date_rev3_decision": None,
         "rev3_decision": None,
         "date_rev4_qc": None,
         "date_rev4_decision": None,
         "rev4_decision": None
     }
     for key, val in expected_data.items():
         self.assertEqual(getattr(art, key), val)
예제 #4
0
    def test_unpublished_article_versions_list(self):
        "valid json content is returned"
        # we need some data that can only come from ejp for this
        ejp_data = join(self.fixture_dir, 'dummy-ejp-for-v2-api-fixtures.json')
        ejp_ingestor.import_article_list_from_json_path(logic.journal(), ejp_data, create=False, update=True)

        resp = self.ac.get(reverse('v2:article-version-list', kwargs={'id': self.msid2}))
        self.assertEqual(resp.status_code, 200)
        self.assertEqual(resp.content_type, 'application/vnd.elife.article-history+json;version=1')
        data = json.loads(resp.content)

        # valid data
        utils.validate(data, SCHEMA_IDX['history'])

        # correct data
        self.assertEqual(len(data['versions']), 3)  # this article has two *published*, one *unpublished*
예제 #5
0
    def test_ejp_ingest_over_existing_data(self):
        "importing ejp articles and updating existing articles is possible but only if we explicitly say so"
        self.assertEqual(models.Article.objects.count(), 0)
        article_data_list = [
            {'manuscript_id': 123,
             'journal': self.journal},

            {'manuscript_id': 11835,
             'journal': self.journal},

            {'manuscript_id': 321,
             'journal': self.journal},
        ]
        [logic.add_or_update_article(**article_data) for article_data in article_data_list]
        self.assertEqual(models.Article.objects.count(), 3)
        ejp_ingestor.import_article_list_from_json_path(self.journal, self.tiny_json_path, update=True)
        self.assertEqual(models.Article.objects.count(), 8)
        art = models.Article.objects.get(manuscript_id=11835)
        self.assertTrue(art.initial_decision)
예제 #6
0
 def test_ejp_ingest(self):
     self.assertEqual(models.Article.objects.count(), 0)
     ejp_ingestor.import_article_list_from_json_path(self.journal, self.partial_json_path)
     self.assertEqual(models.Article.objects.count(), 748)
예제 #7
0
 def test_ejp_ingest(self):
     self.assertEqual(models.Article.objects.count(), 0)
     ejp_ingestor.import_article_list_from_json_path(
         self.journal, self.partial_json_path)
     self.assertEqual(models.Article.objects.count(), 748)