Coverage for tests/test_cli.py: 100%

18 statements  

« prev     ^ index     » next       coverage.py v6.4.2, created at 2022-07-28 16:50 +0200

1import unittest 

2from pathlib import Path 

3 

4from archive_md_urls import cli 

5from tests.testfiles import (CONVERTED_FILE, TEST_MD1, TEST_MD2, TEST_MD3, 

6 TEST_YAML) 

7 

8 

9class TestCli(unittest.TestCase): 

10 """Test Markdown file searching.""" 

11 

12 def test_get_md_files(self) -> None: 

13 """Test if Markdown files are collected correctly.""" 

14 # Create list of all files for recursive and non-recursive search in test_data 

15 all_files_recursive: list[Path] = [ 

16 CONVERTED_FILE, TEST_MD1, TEST_MD2, TEST_MD3, TEST_YAML, 

17 Path("tests/test_data/subdir/empty_testfile.md") 

18 ] 

19 all_files_no_rec: list[Path] = [ 

20 CONVERTED_FILE, TEST_MD1, TEST_MD2, TEST_MD3, TEST_YAML 

21 ] 

22 # Test single file 

23 self.assertEqual(cli.get_md_files([TEST_MD1], False), [TEST_MD1]) 

24 # Test two individual files 

25 self.assertEqual( 

26 cli.get_md_files([TEST_MD1, TEST_MD2], False), [TEST_MD1, TEST_MD2] 

27 ) 

28 # Test recursive search in test_data: First, check if all files are 

29 # included, then check if number of files is correct 

30 scanned_files_rec: list[Path] = cli.get_md_files( 

31 [Path("tests/test_data/")], True 

32 ) 

33 self.assertTrue( 

34 all(file in scanned_files_rec for file in all_files_recursive) 

35 ) 

36 self.assertEqual( 

37 len(scanned_files_rec), len(all_files_recursive) 

38 ) 

39 # Same tests for non-recursive search in test_data 

40 scanned_files_no_rec: list[Path] = cli.get_md_files( 

41 [Path("tests/test_data/")], False 

42 ) 

43 self.assertTrue( 

44 all(file in scanned_files_no_rec for file in all_files_no_rec) 

45 ) 

46 self.assertEqual( 

47 len(scanned_files_no_rec), len(all_files_no_rec) 

48 ) 

49 # Test combination of directories and single files that is effectively equal to 

50 # a recursive search in test_data 

51 scanned_files: list[Path] = cli.get_md_files( 

52 [Path("tests/test_data/"), 

53 Path("tests/test_data/subdir/empty_testfile.md")], 

54 False 

55 ) 

56 self.assertEqual(scanned_files_rec, scanned_files)