diff --git a/.changes/unreleased/fixed-20251103-083447.yaml b/.changes/unreleased/fixed-20251103-083447.yaml new file mode 100644 index 000000000..c6fb36191 --- /dev/null +++ b/.changes/unreleased/fixed-20251103-083447.yaml @@ -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 diff --git a/src/fabric_cli/commands/auth/fab_auth.py b/src/fabric_cli/commands/auth/fab_auth.py index 5b1bd8ff8..29fce8f1f 100644 --- a/src/fabric_cli/commands/auth/fab_auth.py +++ b/src/fabric_cli/commands/auth/fab_auth.py @@ -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 @@ -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 = ( "✓ 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 diff --git a/tests/test_commands/test_auth.py b/tests/test_commands/test_auth.py index 88c91138d..0de502188 100644 --- a/tests/test_commands/test_auth.py +++ b/tests/test_commands/test_auth.py @@ -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={ @@ -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