def test_create_by_doi_publication_pdf_url(self): # This journal is open access romeo = RomeoAPIStub() journal = romeo.fetch_journal({'issn':'0250-6335'}) # Therefore any paper in it is available from the publisher p = Paper.create_by_doi('10.1007/BF02702259') assert p.publications[0].journal == journal # so the pdf_url of the publication should be set p.publications[0].pdf_url.lower() == 'https://doi.org/10.1007/BF02702259'.lower()
def test_publisher_url(self, db, check_page): api = RomeoAPIStub() api.fetch_journal({'issn': '1860-949X'}) p = Paper.create_by_doi('10.1007/978-3-642-14363-2_7') for publi in p.publications: check_page(200, 'publisher', kwargs={ 'pk': publi.publisher_id, 'slug': publi.publisher.slug })
def test_escaping(self, db, check_page): # issue #115 # in the meantime the journal has been deleted from sherpa api = RomeoAPIStub() journal = api.fetch_journal({'issn': '0302-9743'}) # Small hack to make the journal appear in the publisher's journal list journal.update_stats() journal.stats.num_tot = 1 journal.stats.save() publisher = journal.publisher check_page(200, 'publisher', kwargs={ 'pk': publisher.pk, 'slug': publisher.slug })
def setUpClass(cls): super(PublisherAjaxTest, cls).setUpClass() u = User.objects.create_user('patrick', '*****@*****.**', 'yo') u.is_superuser = True u.save() cls.romeo_api = RomeoAPIStub() issn = '1063-6706' cls.romeo_api.fetch_journal({'issn': issn})
def test_change_publisher(self): """ Changing the publisher of a journal should update the associated papers. """ journal = RomeoAPIStub().fetch_journal({'issn':'0892-7537'}) paper = Paper.create_by_doi('10.1007/bf02221836') self.assertEqual(paper.oairecords[0].journal, journal) self.assertEqual(paper.oairecords[0].publisher.oa_status, 'OK') self.assertEqual(paper.oa_status, 'OK') closed_publisher = Publisher(romeo_id='249384', preprint='cannot', postprint='cannot', pdfversion='cannot') closed_publisher.save() journal.change_publisher(closed_publisher) paper = Paper.objects.get(id=paper.id) journal = Journal.objects.get(id=journal.id) self.assertEqual(paper.oa_status, 'UNK') self.assertEqual(paper.publisher(), closed_publisher) self.assertEqual(journal.publisher, closed_publisher)
def test_change_publisher(self): """ Changing the publisher of a journal should update the associated papers. """ journal = RomeoAPIStub().fetch_journal({'issn': '0892-7537'}) paper = Paper.create_by_doi('10.1007/bf02221836') self.assertEqual(paper.oairecords[0].journal, journal) self.assertEqual(paper.oairecords[0].publisher.oa_status, 'OK') self.assertEqual(paper.oa_status, 'OK') closed_publisher = Publisher(romeo_id='249384', preprint='cannot', postprint='cannot', pdfversion='cannot') closed_publisher.save() journal.change_publisher(closed_publisher) paper = Paper.objects.get(id=paper.id) journal = Journal.objects.get(id=journal.id) self.assertEqual(paper.oa_status, 'UNK') self.assertEqual(paper.publisher(), closed_publisher) self.assertEqual(journal.publisher, closed_publisher)
def test_merge(self): # Temporarily fake the romeo_id of our publisher correct_romeo_id = self.publisher.romeo_id self.publisher.romeo_id = '12345' self.publisher.save() # Fetch a journal from the publisher: this creates a duplicate publisher journal = RomeoAPIStub().fetch_journal({'issn': '0073-0688'}) new_publisher = journal.publisher self.assertNotEqual(self.publisher.id, new_publisher.id) # Restore the romeo_id of our original publisher self.publisher.romeo_id = correct_romeo_id self.publisher.save() # Merge self.publisher.merge(new_publisher) # Check that the journal was redirected journal = Journal.objects.get(id=journal.id) self.assertEqual(journal.publisher_id, self.publisher.id)
def setUp(self): super(JournalTest, self).setUp() self.publisher = RomeoAPIStub().fetch_publisher('Harvard University Press')
class JournalTest(TestCase): def setUp(self): super(JournalTest, self).setUp() self.publisher = RomeoAPIStub().fetch_publisher('Harvard University Press') def test_find(self): j1 = Journal(title='Journal of Synthetic Disillusion', issn=None, essn='1234-0707', publisher=self.publisher) j1.save() j2 = Journal(title='Slackline Review', issn='4353-2894', essn=None, publisher=self.publisher) j2.save() self.assertEqual(Journal.find(title='Slackline Review'), j2) self.assertEqual(Journal.find(title='slackline review'), j2) # We look for ISSN and ESSN in both fields, because they could easily be swapped! self.assertEqual(Journal.find(issn='1234-0707'), j1) self.assertEqual(Journal.find(essn='1234-0707'), j1) self.assertEqual(Journal.find(issn='4353-2894'), j2) self.assertEqual(Journal.find(essn='4353-2894'), j2) self.assertEqual(Journal.find(title='nonsense'), None) def test_merge(self): # Temporarily fake the romeo_id of our publisher correct_romeo_id = self.publisher.romeo_id self.publisher.romeo_id = '12345' self.publisher.save() # Fetch a journal from the publisher: this creates a duplicate publisher journal = RomeoAPIStub().fetch_journal({'issn':'0073-0688'}) new_publisher = journal.publisher self.assertNotEqual(self.publisher.id, new_publisher.id) # Restore the romeo_id of our original publisher self.publisher.romeo_id = correct_romeo_id self.publisher.save() # Merge self.publisher.merge(new_publisher) # Check that the journal was redirected journal = Journal.objects.get(id=journal.id) self.assertEqual(journal.publisher_id, self.publisher.id) def test_change_publisher(self): """ Changing the publisher of a journal should update the associated papers. """ journal = RomeoAPIStub().fetch_journal({'issn':'0892-7537'}) paper = Paper.create_by_doi('10.1007/bf02221836') self.assertEqual(paper.oairecords[0].journal, journal) self.assertEqual(paper.oairecords[0].publisher.oa_status, 'OK') self.assertEqual(paper.oa_status, 'OK') closed_publisher = Publisher(romeo_id='249384', preprint='cannot', postprint='cannot', pdfversion='cannot') closed_publisher.save() journal.change_publisher(closed_publisher) paper = Paper.objects.get(id=paper.id) journal = Journal.objects.get(id=journal.id) self.assertEqual(paper.oa_status, 'UNK') self.assertEqual(paper.publisher(), closed_publisher) self.assertEqual(journal.publisher, closed_publisher)
def setUp(self): super(JournalTest, self).setUp() self.publisher = RomeoAPIStub().fetch_publisher( 'Harvard University Press')
class JournalTest(TestCase): def setUp(self): super(JournalTest, self).setUp() self.publisher = RomeoAPIStub().fetch_publisher( 'Harvard University Press') def test_find(self): j1 = Journal(title='Journal of Synthetic Disillusion', issn=None, essn='1234-0707', publisher=self.publisher) j1.save() j2 = Journal(title='Slackline Review', issn='4353-2894', essn=None, publisher=self.publisher) j2.save() self.assertEqual(Journal.find(title='Slackline Review'), j2) self.assertEqual(Journal.find(title='slackline review'), j2) # We look for ISSN and ESSN in both fields, because they could easily be swapped! self.assertEqual(Journal.find(issn='1234-0707'), j1) self.assertEqual(Journal.find(essn='1234-0707'), j1) self.assertEqual(Journal.find(issn='4353-2894'), j2) self.assertEqual(Journal.find(essn='4353-2894'), j2) self.assertEqual(Journal.find(title='nonsense'), None) def test_merge(self): # Temporarily fake the romeo_id of our publisher correct_romeo_id = self.publisher.romeo_id self.publisher.romeo_id = '12345' self.publisher.save() # Fetch a journal from the publisher: this creates a duplicate publisher journal = RomeoAPIStub().fetch_journal({'issn': '0073-0688'}) new_publisher = journal.publisher self.assertNotEqual(self.publisher.id, new_publisher.id) # Restore the romeo_id of our original publisher self.publisher.romeo_id = correct_romeo_id self.publisher.save() # Merge self.publisher.merge(new_publisher) # Check that the journal was redirected journal = Journal.objects.get(id=journal.id) self.assertEqual(journal.publisher_id, self.publisher.id) def test_change_publisher(self): """ Changing the publisher of a journal should update the associated papers. """ journal = RomeoAPIStub().fetch_journal({'issn': '0892-7537'}) paper = Paper.create_by_doi('10.1007/bf02221836') self.assertEqual(paper.oairecords[0].journal, journal) self.assertEqual(paper.oairecords[0].publisher.oa_status, 'OK') self.assertEqual(paper.oa_status, 'OK') closed_publisher = Publisher(romeo_id='249384', preprint='cannot', postprint='cannot', pdfversion='cannot') closed_publisher.save() journal.change_publisher(closed_publisher) paper = Paper.objects.get(id=paper.id) journal = Journal.objects.get(id=journal.id) self.assertEqual(paper.oa_status, 'UNK') self.assertEqual(paper.publisher(), closed_publisher) self.assertEqual(journal.publisher, closed_publisher)