33# standard library
44import unittest
55from unittest .mock import MagicMock
6+ from unittest .mock import patch
67from datetime import date
78import math
89import numpy as np
910import os
11+
1012# third party
1113import pandas
1214import epiweeks as epi
@@ -42,14 +44,14 @@ def test_is_sane_week(self):
4244 self .assertFalse (CsvImporter .is_sane_week (202054 ))
4345 self .assertFalse (CsvImporter .is_sane_week (20200418 ))
4446
45- def test_find_issue_specific_csv_files (self ):
47+ @patch ("os.path.isdir" )
48+ def test_find_issue_specific_csv_files (self ,os_isdir_mock ):
4649 """Recursively explore and find issue specific CSV files."""
47- # valid path
50+ # check valid path
4851 path_prefix = 'prefix/to/the/data/issue_20200408'
49- os .makedirs (path_prefix , exist_ok = True )
50- self .assertTrue (os .path .isdir (path_prefix ))
51-
52+ os_isdir_mock .return_value = True
5253 issue_path = path_prefix + 'ght/20200408_state_rawsearch.csv'
54+
5355 mock_glob = MagicMock ()
5456 mock_glob .glob .side_effect = ([path_prefix ], [issue_path ])
5557
@@ -61,12 +63,13 @@ def test_find_issue_specific_csv_files(self):
6163 found = set (CsvImporter .find_issue_specific_csv_files (path_prefix , glob = mock_glob ))
6264 self .assertTrue (len (found )> 0 )
6365
64- # unvalid path:
66+ # check unvalid path:
6567 path_prefix_invalid = 'invalid/prefix/to/the/data/issue_20200408'
66- self . assertFalse ( os . path . isdir ( path_prefix_invalid ))
68+ os_isdir_mock . return_value = False
6769 issue_path_invalid = path_prefix_invalid + 'ght/20200408_state_rawsearch.csv'
6870 mock_glob_invalid = MagicMock ()
6971 mock_glob_invalid .glob .side_effect = ([path_prefix_invalid ], [issue_path_invalid ])
72+
7073 found = set (CsvImporter .find_issue_specific_csv_files (path_prefix_invalid , glob = mock_glob_invalid ))
7174 self .assertFalse (len (found )> 0 )
7275
0 commit comments