Coverage for test / idm_isbn_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.isbn import ISBNManager 

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_isbn_1 = "9780134093413" 

28 self.valid_isbn_2 = "978-3-16-148410-0" 

29 self.valid_isbn_3 = "0-19-852663-6" 

30 self.invalid_isbn_1 = "0-19-850000-6" 

31 self.invalid_isbn_2 = "978-3-16-148410-99" 

32 

33 

34 def test_isbn_normalise(self): 

35 im = ISBNManager() 

36 self.assertEqual( 

37 self.valid_isbn_1, im.normalise("978-0-13-409341-3") 

38 ) 

39 self.assertEqual( 

40 self.valid_isbn_1, im.normalise("ISBN" + self.valid_isbn_1) 

41 ) 

42 self.assertEqual( 

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

44 ) 

45 

46 def test_isbn_is_valid(self): 

47 im = ISBNManager() 

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

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

50 self.assertTrue(im.is_valid(self.valid_isbn_3)) 

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

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

53 

54 im_file = ISBNManager(self.data) 

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

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

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

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

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

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