Skip to content
Merged
3 changes: 3 additions & 0 deletions .changes/unreleased/fixed-20251103-083447.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
kind: fixed
body: Fix `--output_format` argument for command `fab auth status`
time: 2025-11-03T08:34:47.3979808+01:00
28 changes: 16 additions & 12 deletions src/fabric_cli/commands/auth/fab_auth.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from argparse import Namespace
from typing import Any, Optional

from fabric_cli.core import fab_constant, fab_logger, fab_state_config
from fabric_cli.core import fab_constant, fab_logger
from fabric_cli.core.fab_auth import FabAuth
from fabric_cli.core.fab_context import Context
from fabric_cli.core.fab_exceptions import FabricCLIError
Expand Down Expand Up @@ -262,21 +262,25 @@ def __mask_token(scope):
azure_secret = __mask_token(fab_constant.SCOPE_AZURE_DEFAULT)

# Check login status
is_logged_in = fabric_secret != "N/A"
login_status = (
Comment thread
Guust-Franssens marked this conversation as resolved.
"✓ Logged in to app.fabric.microsoft.com"
if fabric_secret != "N/A"
if is_logged_in
else "✗ Not logged in to app.fabric.microsoft.com"
)

fab_ui.print_grey(
f"""{login_status}
- Account: {upn} ({oid})
- Tenant ID: {tid}
- App ID: {appid}
- Token (fabric/powerbi): {fabric_secret}
- Token (storage): {storage_secret}
- Token (azure): {azure_secret}"""
)
fab_ui.print_grey(login_status)

auth_data = {
"logged_in": is_logged_in,
"account": upn,
"principal_id": oid,
"tenant_id": tid,
"app_id": appid,
"token_fabric_powerbi": fabric_secret,
"token_storage": storage_secret,
"token_azure": azure_secret,
}
fab_ui.print_output_format(args, data=auth_data, show_key_value_list=True)


# Utils
Expand Down
44 changes: 16 additions & 28 deletions tests/test_commands/test_auth.py
Original file line number Diff line number Diff line change
Expand Up @@ -898,9 +898,13 @@ def test_auth_logout(

mock_print_done.assert_called_once()

def test_auth_status(self, mock_fab_auth, mock_questionary_print):
def test_auth_status(self, mock_fab_auth, capsys):
# Arrange
args = MagicMock()
args = argparse.Namespace(
command="auth",
auth_subcommand="status",
output_format=None,
)
with patch(
"fabric_cli.commands.auth.fab_auth._get_token_info_from_bearer_token",
return_value={
Expand All @@ -913,32 +917,16 @@ def test_auth_status(self, mock_fab_auth, mock_questionary_print):
fab_auth.status(args)

# Assert
assert any(
"Account" in call.args[0] for call in mock_questionary_print.mock_calls
)
assert any(
"Tenant ID" in call.args[0]
for call in mock_questionary_print.mock_calls
)
assert any(
"App ID" in call.args[0] for call in mock_questionary_print.mock_calls
)
assert any(
"Token (fabric/powerbi)" in call.args[0]
for call in mock_questionary_print.mock_calls
)
assert any(
"Token (storage)" in call.args[0]
for call in mock_questionary_print.mock_calls
)
assert any(
"Token (azure)" in call.args[0]
for call in mock_questionary_print.mock_calls
)
assert any(
"mock************************************" in call.args[0]
for call in mock_questionary_print.mock_calls
)
captured = capsys.readouterr()
assert "account" in captured.out.lower()
assert "tenant" in captured.out.lower()
assert "app" in captured.out.lower()
assert "token" in captured.out.lower()
assert "mocked_upn" in captured.out
assert "mocked_appid" in captured.out
assert "mocke_oid" in captured.out
assert "mocked_tenant_id" in captured.out
assert "mock************************************" in captured.out

def test_init_when_user_cancels_the_prompt(
self, mock_fab_auth, mock_fab_context, mock_fab_logger_log_warning, capsys
Expand Down