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

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 

5 

6 

7import unittest 

8 

9from oc_ds_converter.oc_idmanager import DOIManager 

10from oc_ds_converter.lib.file_manager import call_api 

11 

12from oc_ds_converter.medra.medra_processing import MedraProcessing 

13 

14doi_manager = DOIManager() 

15MEDRA_API = doi_manager._api_medra 

16HEADERS = doi_manager._headers 

17 

18 

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) 

30 

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) 

40 

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) 

51 

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) 

59