Skip to content

Commit 6357b3d

Browse files
updated csv import tests for import_files()
1 parent 4bc17a6 commit 6357b3d

1 file changed

Lines changed: 29 additions & 10 deletions

File tree

tests/file_utils_test.py

Lines changed: 29 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
from codonpython.file_utils import compare
22
from codonpython.file_utils import file_search
33
from codonpython.file_utils import import_files
4+
from tests.utils import DfWrap
45
import numpy as np
56
import pytest
67
import pandas as pd
78

9+
10+
811
df1 = pd.DataFrame(
912
{
1013
"A": [1, 5, 6, 1, 8, 5, 9],
@@ -97,20 +100,36 @@ def test_compare_BAU(x, y, names, dups, same, expected):
97100
def test_file_search_BAU(doctype, like, strict, expected):
98101
assert file_search(doctype=doctype, like=like, strict=strict) == expected
99102

100-
file_import_path = './tests'
103+
df_test_import = pd.DataFrame({
104+
"test": ["test"]
105+
})
106+
df_test_import = DfWrap(df_test_import)
101107

102-
@pytest.mark.parametrize("expected", [({})])
103-
def test_import_files_BAU(expected):
104-
assert import_files(file_import_path) == expected
108+
expected_imports_subdir_search = {
109+
'/tests/import_files/test': df_test_import,
110+
'/tests/import_files/subdir/subdir_test': df_test_import
111+
}
112+
expected_imports_no_subdirs = {'test': df_test_import}
113+
expected_imports_filename_match = {'/tests/import_files/subdir/subdir_test': df_test_import}
105114

106-
@pytest.mark.parametrize("subdir, expected", [(True, {})])
107-
def test_import_files_BAU_2(subdir, expected):
115+
@pytest.mark.parametrize("file_import_path, subdir, expected", [('./tests', False, {})])
116+
def test_import_files_when_none_found(file_import_path, subdir, expected):
108117
assert import_files(file_import_path, subdir=subdir) == expected
109118

110-
111-
@pytest.mark.parametrize("strict,subdir, expected", [(True, True, {})])
112-
def test_import_files_BAU_3(strict, subdir, expected):
113-
assert import_files(file_import_path, strict=strict, subdir=subdir) == expected
119+
@pytest.mark.parametrize("file_import_path, subdir, strict, like, expected", [
120+
('./tests/import_files', False, False, [''], expected_imports_no_subdirs),
121+
('./tests/import_files', True, False, [''], expected_imports_subdir_search),
122+
('./tests/import_files', True, True, ['subdir'], expected_imports_filename_match),
123+
])
124+
def test_import_files_csv(file_import_path, subdir, strict, like, expected):
125+
imported_files = import_files(file_import_path, subdir=subdir, strict=strict, like=like)
126+
127+
# in the default csv mode, import_files() returns a dict with a pandas df for every csv file it finds.
128+
# The loop below wraps each dfs in the DfWrap class, so that the dicts can be compared with
129+
# the expected results for equality.
130+
for file in imported_files:
131+
imported_files[file] = DfWrap(imported_files[file])
132+
assert imported_files == expected
114133

115134

116135
# ----------------Console output-------------------------

0 commit comments

Comments
 (0)