Coverage for test / processing_medra_test.py: 100%
36 statements
« prev ^ index » next coverage.py v7.13.4, created at 2026-03-25 18:06 +0000
« prev ^ index » next coverage.py v7.13.4, created at 2026-03-25 18:06 +0000
1# SPDX-FileCopyrightText: 2023-2024 Arianna Moretti <arianna.moretti4@unibo.it>
2# SPDX-FileCopyrightText: 2024 Marta Soricetti <marta.soricetti@unibo.it>
3#
4# SPDX-License-Identifier: ISC
7import unittest
9from oc_ds_converter.oc_idmanager import DOIManager
10from oc_ds_converter.lib.file_manager import call_api
12from oc_ds_converter.medra.medra_processing import MedraProcessing
14doi_manager = DOIManager()
15MEDRA_API = doi_manager._api_medra
16HEADERS = doi_manager._headers
19class MedraProcessingTest(unittest.TestCase):
20 def test_extract_from_medra_article(self):
21 url = f'{MEDRA_API}10.3233/DS-210053'
22 item = call_api(url, HEADERS, 'xml')
23 medra_processing = MedraProcessing()
24 output = medra_processing.csv_creator(item)
25 expected_output = {'id': 'doi:10.3233/ds-210053', 'title': 'Packaging research artefacts with RO-Crate',
26 'author': '; '.join(['Soiland-Reyes, Stian [orcid:0000-0001-9842-9718]', 'Sefton, Peter [orcid:0000-0002-3545-944X]', 'Crosas, Mercè [orcid:0000-0003-1304-1939]', 'Castro, Leyla Jael [orcid:0000-0003-3986-0510]', 'Coppens, Frederik [orcid:0000-0001-6565-5145]', 'Fernández, José M. [orcid:0000-0002-4806-5140]', 'Garijo, Daniel [orcid:0000-0003-0454-7145]', 'Grüning, Björn [orcid:0000-0002-3079-6586]', 'La Rosa, Marco [orcid:0000-0001-5383-6993]', 'Leo, Simone [orcid:0000-0001-8271-5429]', 'Ó Carragáin, Eoghan [orcid:0000-0001-8131-2150]', 'Portier, Marc [orcid:0000-0002-9648-6484]', 'Trisovic, Ana [orcid:0000-0003-1991-0533]', 'RO-Crate Community', 'Groth, Paul [orcid:0000-0003-0183-6910]', 'Goble, Carole [orcid:0000-0003-1219-2137]']),
27 'issue': '2', 'volume': '5', 'venue': 'Data Science [issn:2451-8492 issn:2451-8484]', 'pub_date': '2022-07-20', 'pages': '97-138', 'type': 'journal article',
28 'publisher': 'IOS Press', 'editor': 'Peroni, Silvio [orcid:0000-0003-0530-4305]'}
29 self.assertEqual(output, expected_output)
31 def test_extract_from_medra_book(self):
32 url = f'{MEDRA_API}10.23775/20221026'
33 item = call_api(url, HEADERS, 'xml')
34 medra_processing = MedraProcessing()
35 output = medra_processing.csv_creator(item)
36 expected_output = {'id': 'doi:10.23775/20221026', 'title': 'Book of Abstract: 2nd International PEROSH conference on Prolonging Working Life',
37 'author': '; '.join(['PEROSH member institutes']), 'issue': '', 'volume': '', 'venue': '', 'pub_date': '2022-09',
38 'pages': '', 'type': 'book', 'publisher': 'PEROSH', 'editor': ''}
39 self.assertEqual(output, expected_output)
41 def test_extract_from_medra_series(self):
42 url = f'{MEDRA_API}10.17426/58141'
43 item = call_api(url, HEADERS, 'xml')
44 medra_processing = MedraProcessing()
45 output = medra_processing.csv_creator(item)
46 expected_output = {
47 'id': 'doi:10.17426/58141', 'title': 'L’Aquila oltre i terremoti. Costruzioni e ricostruzioni della città a cura di Simonetta Ciranna e Manuel Vaquero Piñeiro',
48 'author': '', 'issue': '', 'volume': '', 'venue': '', 'pub_date': '2011-07-08', 'pages': '',
49 'type': 'series', 'publisher': 'CROMA - UNIVERSITÀ ROMA TRE', 'editor': ''}
50 self.assertEqual(output, expected_output)
52 def test_extract_from_medra_book_chapter(self):
53 url = f'{MEDRA_API}10.2357/9783739880303-105'
54 item = call_api(url, HEADERS, 'xml')
55 medra_processing = MedraProcessing()
56 output = medra_processing.csv_creator(item)
57 expected_output = {'id': 'doi:10.2357/9783739880303-105', 'title': 'Kapitel 11: Sturmwarndienst und Seenotrettung', 'author': 'Wassermann, Matthias', 'issue': '', 'volume': '', 'venue': 'Bodenseeschifferpatent kompakt', 'pub_date': '2020', 'pages': '', 'type': 'book chapter', 'publisher': '', 'editor': ''}
58 self.assertEqual(output, expected_output)