diff --git a/passgithelper.py b/passgithelper.py index db120e5..7eb96b7 100755 --- a/passgithelper.py +++ b/passgithelper.py @@ -388,9 +388,15 @@ def get_password( password_extractor = SpecificLineExtractor(0, 0, option_suffix="_password") password_extractor.configure(section) - username_extractor = _username_extractors[ - section.get("username_extractor", fallback=_line_extractor_name) - ] + + username_extractor_name = section.get( + "username_extractor", fallback=_line_extractor_name + ) + username_extractor = _username_extractors.get(username_extractor_name) + if username_extractor is None: + raise ValueError( + f"A username_extractor of type '{username_extractor_name}' does not exist" + ) username_extractor.configure(section) environment = compute_pass_environment(section) diff --git a/test_passgithelper.py b/test_passgithelper.py index f59a55e..94b7a2e 100644 --- a/test_passgithelper.py +++ b/test_passgithelper.py @@ -373,9 +373,11 @@ def test_prefix_skipping(self, capsys: Any) -> None: indirect=True, ) @pytest.mark.usefixtures("helper_config") - def test_select_unknown_extractor(self) -> None: + def test_select_unknown_extractor(self, capsys: Any) -> None: with pytest.raises(SystemExit): passgithelper.main(["get"]) + _, err = capsys.readouterr() + assert "username_extractor of type 'doesntexist' does not exist" in err @pytest.mark.parametrize( "helper_config",