Skip to content
Merged
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
26 changes: 26 additions & 0 deletions ask_shell/_internal/typer_command_test.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,35 @@
import logging

import pytest
import typer

from ask_shell._internal import typer_command


def test_hide_secrets(caplog, tmp_path):
root_logger = logging.getLogger()
assert root_logger.handlers
handler = root_logger.handlers[0]
assert isinstance(handler, logging.StreamHandler)
secrets = {
"SECRET_KEY": "my_secret_value",
"ANOTHER_KEY": "another",
"token": "adsfadf",
"ok": "some-value",
"my-secret-path": str(tmp_path),
}
typer_command.hide_secrets(handler, secrets)
expect_hidden = {value for key, value in secrets.items() if key not in {"ok", "my-secret-path"}}
expect_shown = {value for key, value in secrets.items() if key in {"ok", "my-secret-path"}}
all_vars_logged = ",".join(f"{key}={value}" for key, value in secrets.items())
root_logger.warning(f"Logging all variables: {all_vars_logged}")
output = caplog.text
found_hidden = {value for value in expect_hidden if value in output}
assert not found_hidden
found_shown: set[str] = {value for value in expect_shown if value in output}
assert found_shown == expect_shown, f"Expected to find {expect_shown}, but found {found_shown}"


def test_configure_logging_wraps_commands_in_nested_typers() -> None:
root = typer.Typer(name="root")
sub = typer.Typer(help="sub")
Expand Down
Loading