Coverage for test / idm_issn_test.py: 97%

37 statements  

« prev     ^ index     » next       coverage.py v7.13.4, created at 2026-03-25 18:06 +0000

1# SPDX-FileCopyrightText: 2023 Arianna Moretti <arianna.moretti4@unibo.it> 

2# SPDX-FileCopyrightText: 2026 Arcangelo Massari <arcangelo.massari@unibo.it> 

3# 

4# SPDX-License-Identifier: ISC 

5 

6 

7import json 

8import unittest 

9from os import makedirs 

10from os.path import exists, join 

11 

12from oc_ds_converter.oc_idmanager.issn import ISSNManager 

13 

14 

15class issnIdentifierManagerTest(unittest.TestCase): 

16 """This class aim at testing identifiers manager.""" 

17 

18 def setUp(self): 

19 if not exists("tmp"): 

20 makedirs("tmp") 

21 

22 self.test_dir = join("test", "data") 

23 self.test_json_path = join(self.test_dir, "glob.json") 

24 with open(self.test_json_path, encoding="utf-8") as fp: 

25 self.data = json.load(fp) 

26 

27 self.valid_issn_1 = "2376-5992" 

28 self.valid_issn_2 = "1474-175X" 

29 self.invalid_issn_1 = "2376-599C" 

30 self.invalid_issn_2 = "2376-5995" 

31 self.invalid_issn_3 = "2376-599" 

32 

33 

34 def test_issn_normalise(self): 

35 im = ISSNManager() 

36 self.assertEqual( 

37 self.valid_issn_1, im.normalise(self.valid_issn_1.replace("-", " ")) 

38 ) 

39 self.assertEqual( 

40 self.valid_issn_2, im.normalise(self.valid_issn_2.replace("-", " ")) 

41 ) 

42 self.assertEqual( 

43 self.invalid_issn_3, im.normalise(self.invalid_issn_3.replace("-", " ")) 

44 ) 

45 

46 def test_issn_is_valid(self): 

47 im = ISSNManager() 

48 self.assertTrue(im.is_valid(self.valid_issn_1)) 

49 self.assertTrue(im.is_valid(self.valid_issn_2)) 

50 self.assertFalse(im.is_valid(self.invalid_issn_1)) 

51 self.assertFalse(im.is_valid(self.invalid_issn_2)) 

52 self.assertFalse(im.is_valid(self.invalid_issn_3)) 

53 

54 im_file = ISSNManager(self.data) 

55 self.assertTrue(im_file.normalise(self.valid_issn_1, include_prefix=True) in self.data) 

56 self.assertTrue(im_file.normalise(self.valid_issn_2, include_prefix=True) in self.data) 

57 self.assertTrue(im_file.normalise(self.invalid_issn_2, include_prefix=True) in self.data) 

58 self.assertTrue(im_file.is_valid((im_file.normalise(self.valid_issn_1, include_prefix=True)))) 

59 self.assertTrue(im_file.is_valid((im_file.normalise(self.valid_issn_2, include_prefix=True)))) 

60 self.assertFalse(im_file.is_valid((im_file.normalise(self.invalid_issn_2, include_prefix=True))))