Exemplo n.º 1
0
 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()
Exemplo n.º 2
0
 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
                    })
Exemplo n.º 3
0
 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
                })
Exemplo n.º 4
0
 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})
Exemplo n.º 5
0
 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)
     
     
Exemplo n.º 6
0
    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)
Exemplo n.º 7
0
    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)
Exemplo n.º 8
0
 def setUp(self):
     super(JournalTest, self).setUp()
     self.publisher = RomeoAPIStub().fetch_publisher('Harvard University Press')
Exemplo n.º 9
0
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)
        
        
Exemplo n.º 10
0
 def setUp(self):
     super(JournalTest, self).setUp()
     self.publisher = RomeoAPIStub().fetch_publisher(
         'Harvard University Press')
Exemplo n.º 11
0
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)