Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions deadcode/actions/parse_arguments.py
Original file line number Diff line number Diff line change
Expand Up @@ -225,6 +225,9 @@ def parse_arguments(args: list[str] | None) -> Args:
for key, item in parse_pyproject_toml().items():
if key not in parsed_args:
continue
if isinstance(parsed_args[key], bool):
parsed_args[key] = bool(item)
continue
if isinstance(item, str) and isinstance(parsed_args[key], list):
item = [item]
parsed_args[key].extend(item)
Expand Down
13 changes: 13 additions & 0 deletions tests/cli_args/test_parsing.py
Original file line number Diff line number Diff line change
Expand Up @@ -238,6 +238,19 @@ def test_sys_argv_used_when_no_arguments_provided(monkeypatch: pytest.MonkeyPatc
assert args.count is True


def test_boolean_pyproject_setting_enables_flag(tmp_path, monkeypatch: pytest.MonkeyPatch):
# Having
(tmp_path / 'pyproject.toml').write_text('[tool.deadcode]\nfix = true\ncount = true\n')
monkeypatch.chdir(tmp_path)

# When
args = parse_arguments(['foo.py'])

# Then
assert args.fix is True
assert args.count is True


def test_unknown_pyproject_setting_is_ignored(tmp_path, monkeypatch: pytest.MonkeyPatch):
# Having
(tmp_path / 'pyproject.toml').write_text('[tool.deadcode]\nunknown_setting = true\n')
Expand Down