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
« 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.
17import os
18import unittest
20from oc_meta.lib.file_manager import get_csv_data
21from oc_meta.run.meta_mapping_extractor import extract_metaid_mapping
23BASE = os.path.join('test', 'meta_mapping_extractor')
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']))