Skip to content

Commit 36fcf39

Browse files
committedOct 3, 2021
Add test for resolve-all-configs flag
1 parent 33e49a3 commit 36fcf39

File tree

2 files changed

+88
-0
lines changed

2 files changed

+88
-0
lines changed
 

‎tests/unit/test_settings.py

+50
Original file line numberDiff line numberDiff line change
@@ -238,3 +238,53 @@ def test_as_bool():
238238
settings._as_bool("falsey")
239239
with pytest.raises(ValueError):
240240
settings._as_bool("truthy")
241+
242+
243+
def test_find_all_configs(tmpdir):
244+
setup_cfg = """
245+
[isort]
246+
profile=django
247+
"""
248+
249+
pyproject_toml = """
250+
[tool.isort]
251+
profile = "hug"
252+
"""
253+
254+
isort_cfg = """
255+
[settings]
256+
profile=black
257+
"""
258+
dir1 = tmpdir / "subdir1"
259+
dir2 = tmpdir / "subdir2"
260+
dir3 = tmpdir / "subdir3"
261+
262+
dir1.mkdir()
263+
dir2.mkdir()
264+
dir3.mkdir()
265+
266+
setup_cfg_file = dir1 / "setup.cfg"
267+
setup_cfg_file.write_text(setup_cfg, "utf-8")
268+
269+
pyproject_toml_file = dir2 / "pyproject.toml"
270+
pyproject_toml_file.write_text(pyproject_toml, "utf-8")
271+
272+
isort_cfg_file = dir3 / ".isort.cfg"
273+
isort_cfg_file.write_text(isort_cfg, "utf-8")
274+
275+
config_trie = settings.find_all_configs((str(tmpdir),))
276+
277+
config_info_1 = config_trie._search(str(dir1 / "test1.py"))
278+
assert config_info_1[0] == str(setup_cfg_file)
279+
assert "profile" in config_info_1[1] and config_info_1[1]["profile"] == "django"
280+
281+
config_info_2 = config_trie._search(str(dir2 / "test2.py"))
282+
assert config_info_2[0] == str(pyproject_toml_file)
283+
assert "profile" in config_info_2[1] and config_info_2[1]["profile"] == "hug"
284+
285+
config_info_3 = config_trie._search(str(dir3 / "test3.py"))
286+
assert config_info_3[0] == str(isort_cfg_file)
287+
assert "profile" in config_info_3[1] and config_info_3[1]["profile"] == "black"
288+
289+
config_info_4 = config_trie._search(str(tmpdir / "file4.py"))
290+
assert config_info_4[0] == "default"

‎tests/unit/test_utils.py

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
from isort.utils import Trie
2+
3+
4+
def test_trie():
5+
trie_root = Trie("default", {"line_length": 70})
6+
7+
trie_root._insert("/temp/config1/.isort.cfg", {"line_length": 71})
8+
trie_root._insert("/temp/config2/setup.cfg", {"line_length": 72})
9+
trie_root._insert("/temp/config3/pyproject.toml", {"line_length": 73})
10+
11+
# Ensure that appropriate configs are resolved for files in different directories
12+
config1 = trie_root._search("/temp/config1/subdir/file1.py")
13+
assert config1[0] == "/temp/config1/.isort.cfg"
14+
assert config1[1] == {"line_length": 71}
15+
16+
config1_2 = trie_root._search("/temp/config1/file1_2.py")
17+
assert config1_2[0] == "/temp/config1/.isort.cfg"
18+
assert config1_2[1] == {"line_length": 71}
19+
20+
config2 = trie_root._search("/temp/config2/subdir/subsubdir/file2.py")
21+
assert config2[0] == "/temp/config2/setup.cfg"
22+
assert config2[1] == {"line_length": 72}
23+
24+
config2_2 = trie_root._search("/temp/config2/subdir/file2_2.py")
25+
assert config2_2[0] == "/temp/config2/setup.cfg"
26+
assert config2_2[1] == {"line_length": 72}
27+
28+
config3 = trie_root._search("/temp/config3/subdir/subsubdir/subsubsubdir/file3.py")
29+
assert config3[0] == "/temp/config3/pyproject.toml"
30+
assert config3[1] == {"line_length": 73}
31+
32+
config3_2 = trie_root._search("/temp/config3/file3.py")
33+
assert config3_2[0] == "/temp/config3/pyproject.toml"
34+
assert config3_2[1] == {"line_length": 73}
35+
36+
config_outside = trie_root._search("/temp/file.py")
37+
assert config_outside[0] == "default"
38+
assert config_outside[1] == {"line_length": 70}

0 commit comments

Comments
 (0)
Please sign in to comment.