Coverage for test/get_ids_from_citations_test.py: 100%

29 statements  

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

1import os 

2import shutil 

3import unittest 

4 

5from oc_meta.lib.file_manager import get_csv_data 

6from oc_meta.plugins.get_ids_from_citations import get_ids_from_citations 

7 

8BASE_DIR = os.path.join('test', 'get_ids_from_citations') 

9OUTPUT_DIR = os.path.join('test', 'get_ids_from_citations', 'output') 

10 

11 

12class test_GetIdsFromCitations(unittest.TestCase): 

13 def test_get_ids_from_citations_no_right_files(self): 

14 with self.assertRaises(RuntimeError): 

15 get_ids_from_citations(citations_dir=os.path.join(BASE_DIR, 'wrong_input'), output_dir=os.path.join(OUTPUT_DIR, 'wrong_output'), verbose=False) 

16 

17 def test_get_ids_from_citations_csv(self): 

18 get_ids_from_citations(citations_dir=os.path.join(BASE_DIR, 'input_csv'), output_dir=os.path.join(OUTPUT_DIR, 'csv'), threshold=3, verbose=True) 

19 get_ids_from_citations(citations_dir=os.path.join(BASE_DIR, 'input_csv'), output_dir=os.path.join(OUTPUT_DIR, 'csv'), threshold=2, verbose=True) 

20 output = list() 

21 output_dir = os.path.join(OUTPUT_DIR, 'csv') 

22 for filename in os.listdir(output_dir): 

23 output.extend(get_csv_data(os.path.join(output_dir, filename))) 

24 expected_output = [{'id': '2140506'}, {'id': '2942070'}, {'id': '1523579'}, {'id': '7097569'}, {'id': '10.1108/jd-12-2013-0166'}, {'id': '10.1023/a:1021919228368'}, {'id': '10.1093/bioinformatics'}] 

25 self.assertEqual(output, expected_output) 

26 

27 def test_get_ids_from_citations_zip(self): 

28 get_ids_from_citations(citations_dir=os.path.join(BASE_DIR, 'input_zip'), output_dir=os.path.join(OUTPUT_DIR, 'zip'), threshold=2, verbose=True) 

29 output = list() 

30 output_dir = os.path.join(OUTPUT_DIR, 'zip') 

31 for filename in os.listdir(output_dir): 

32 output.extend(get_csv_data(os.path.join(output_dir, filename))) 

33 expected_output = sorted([{'id': '2140506'}, {'id': '2942070'}, {'id': '1523579'}, {'id': '7097569'}, {'id': '10.1108/jd-12-2013-0166'}, {'id': '10.1023/a:1021919228368'}, {'id': '10.1093/bioinformatics'}], key=lambda x:''.join(x['id'])) 

34 shutil.rmtree(output_dir) 

35 self.assertEqual(sorted(output, key=lambda x:''.join(x['id'])), expected_output) 

36