Coverage for test/meta_mapping_extractor_test.py: 100%

14 statements  

« prev     ^ index     » next       coverage.py v6.5.0, created at 2025-07-14 14:06 +0000

1#!python 

2# Copyright 2022, Arcangelo Massari <arcangelo.massari@unibo.it>, Arianna Moretti <arianna.moretti4@unibo.it> 

3# 

4# Permission to use, copy, modify, and/or distribute this software for any purpose 

5# with or without fee is hereby granted, provided that the above copyright notice 

6# and this permission notice appear in all copies. 

7# 

8# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH 

9# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND 

10# FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, 

11# OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, 

12# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS 

13# ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS 

14# SOFTWARE. 

15 

16 

17import os 

18import unittest 

19 

20from oc_meta.lib.file_manager import get_csv_data 

21from oc_meta.run.meta_mapping_extractor import extract_metaid_mapping 

22 

23BASE = os.path.join('test', 'meta_mapping_extractor') 

24 

25class MetaMappingExtractorTest(unittest.TestCase): 

26 def test_extract_metaid_mapping(self): 

27 output_dirpath = os.path.join(BASE, 'output') 

28 output_filepath = os.path.join(output_dirpath, '1-32.csv') 

29 extract_metaid_mapping(BASE, output_dirpath) 

30 output = get_csv_data(output_filepath) 

31 os.remove(output_filepath) 

32 expected_output = [ 

33 {'id': 'omid:br/0601', 'value': 'doi:10.1007/978-3-662-07918-8_3'}, 

34 {'id': 'omid:br/0602', 'value': 'isbn:9783662079188'}, 

35 {'id': 'omid:br/0602', 'value': 'isbn:9783642058530'}, 

36 {'id': 'omid:br/0603', 'value': 'doi:10.1016/0021-9991(73)90147-2'}, 

37 {'id': 'omid:br/0604', 'value': 'issn:0021-9991'}, 

38 {'id': 'omid:br/0607', 'value': 'doi:10.1109/20.877674'}, 

39 {'id': 'omid:br/0608', 'value': 'issn:0018-9464'}, 

40 {'id': 'omid:br/06011', 'value': 'doi:10.1109/tps.2003.815469'}, 

41 {'id': 'omid:br/06012', 'value': 'issn:0093-3813'}, 

42 {'id': 'omid:br/06016', 'value': 'issn:0885-8977'}, 

43 {'id': 'omid:br/06016', 'value': 'issn:1937-4208'}, 

44 {'id': 'omid:br/06019', 'value': 'doi:10.1007/978-1-4615-3786-1_11'}, 

45 {'id': 'omid:br/06020', 'value': 'isbn:9781461537861'}, 

46 {'id': 'omid:br/06020', 'value': 'isbn:9781461366874'}, 

47 {'id': 'omid:br/06021', 'value': 'doi:10.1088/0022-3727/13/1/002'}, 

48 {'id': 'omid:br/06022', 'value': 'issn:1361-6463'}, 

49 {'id': 'omid:br/06022', 'value': 'issn:0022-3727'}, 

50 {'id': 'omid:br/06025', 'value': 'doi:10.1109/27.106800'}, 

51 {'id': 'omid:br/06029', 'value': 'doi:10.1016/0021-9991(79)90051-2'}, 

52 {'id': 'omid:br/06033', 'value': 'doi:10.1088/0022-3727/39/14/017'}, 

53 {'id': 'omid:br/06037', 'value': 'isbn:9783663140900'}, 

54 {'id': 'omid:br/06037', 'value': 'isbn:9783528085995'}, 

55 {'id': 'omid:br/06037', 'value': 'doi:10.1007/978-3-663-14090-0'}, 

56 {'id': 'omid:br/06042', 'value': 'doi:10.1007/s42835-022-01029-y'}, 

57 {'id': 'omid:br/06043', 'value': 'issn:2093-7423'}, 

58 {'id': 'omid:br/06043', 'value': 'issn:1975-0102'}, 

59 {'id': 'omid:ra/0602', 'value': 'crossref:297'}, 

60 {'id': 'omid:ra/0605', 'value': 'crossref:78'}, 

61 {'id': 'omid:ra/0610', 'value': 'crossref:263'}, 

62 {'id': 'omid:ra/06026', 'value': 'crossref:266'}, 

63 {'id': 'omid:ra/06032', 'value': 'orcid:0000-0003-3891-6869'}, 

64 {'id': 'omid:ra/06040', 'value': 'orcid:0000-0002-9383-6856'}] 

65 self.assertEqual(output.sort(key=lambda x: x['id']), expected_output.sort(key=lambda x: x['id']))