Skip to content

Commit cd35b83

Browse files
authored
Merge pull request #375 from ktetzlaff/improve-error-message-for-unknown-unsername-extractor
fix: improve error message for unknown username extractor
2 parents ade878d + 8c10441 commit cd35b83

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

passgithelper.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -388,9 +388,15 @@ def get_password(
388388

389389
password_extractor = SpecificLineExtractor(0, 0, option_suffix="_password")
390390
password_extractor.configure(section)
391-
username_extractor = _username_extractors[
392-
section.get("username_extractor", fallback=_line_extractor_name)
393-
]
391+
392+
username_extractor_name = section.get(
393+
"username_extractor", fallback=_line_extractor_name
394+
)
395+
username_extractor = _username_extractors.get(username_extractor_name)
396+
if username_extractor is None:
397+
raise ValueError(
398+
f"A username_extractor of type '{username_extractor_name}' does not exist"
399+
)
394400
username_extractor.configure(section)
395401

396402
environment = compute_pass_environment(section)

test_passgithelper.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -373,9 +373,11 @@ def test_prefix_skipping(self, capsys: Any) -> None:
373373
indirect=True,
374374
)
375375
@pytest.mark.usefixtures("helper_config")
376-
def test_select_unknown_extractor(self) -> None:
376+
def test_select_unknown_extractor(self, capsys: Any) -> None:
377377
with pytest.raises(SystemExit):
378378
passgithelper.main(["get"])
379+
_, err = capsys.readouterr()
380+
assert "username_extractor of type 'doesntexist' does not exist" in err
379381

380382
@pytest.mark.parametrize(
381383
"helper_config",

0 commit comments

Comments
 (0)