diff --git a/.vscode/launch.json b/.vscode/launch.json index c2a47d74891..e7ed7a11353 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -3,7 +3,7 @@ "configurations": [ { "name": "Azure CLI Debug (Integrated Console)", - "type": "python", + "type": "debugpy", "request": "launch", "python": "${command:python.interpreterPath}", "program": "${workspaceRoot}/src/azure-cli/azure/cli/__main__.py", @@ -12,33 +12,24 @@ "--help" ], "console": "integratedTerminal", - "debugOptions": [ - "WaitOnAbnormalExit", - "WaitOnNormalExit", - "RedirectOutput" - ], "justMyCode": false }, { "name": "Azure CLI Debug (External Console)", - "type": "python", + "type": "debugpy", "request": "launch", "stopOnEntry": true, "python": "${command:python.interpreterPath}", "program": "${workspaceRoot}/src/azure-cli/azure/cli/__main__.py", "cwd": "${workspaceRoot}", "args": [ - "--help" + "--version" ], "console": "externalTerminal", - "debugOptions": [ - "WaitOnAbnormalExit", - "WaitOnNormalExit" - ] }, { "name": "Azdev Scripts", - "type": "python", + "type": "debugpy", "request": "launch", "python": "${command:python.interpreterPath}", "program": "${workspaceRoot}/tools/automation/__main__.py", @@ -47,11 +38,6 @@ "--help" ], "console": "integratedTerminal", - "debugOptions": [ - "WaitOnAbnormalExit", - "WaitOnNormalExit", - "RedirectOutput" - ] } ] -} +} \ No newline at end of file diff --git a/src/azure-cli-core/azure/cli/core/__init__.py b/src/azure-cli-core/azure/cli/core/__init__.py index e44a72fc5f1..7609b6e49a4 100644 --- a/src/azure-cli-core/azure/cli/core/__init__.py +++ b/src/azure-cli-core/azure/cli/core/__init__.py @@ -120,6 +120,9 @@ def get_cli_version(self): def show_version(self): from azure.cli.core.util import get_az_version_string, show_updates + from azure.cli.core import telemetry + + telemetry.set_command_details(command="", parameters=["--version"]) ver_string, updates_available_components = get_az_version_string() print(ver_string) diff --git a/src/azure-cli-core/azure/cli/core/tests/test_telemetry.py b/src/azure-cli-core/azure/cli/core/tests/test_telemetry.py index e5e0ef8c19c..7222acba99b 100644 --- a/src/azure-cli-core/azure/cli/core/tests/test_telemetry.py +++ b/src/azure-cli-core/azure/cli/core/tests/test_telemetry.py @@ -4,6 +4,7 @@ # -------------------------------------------------------------------------------------------- import unittest +from unittest import mock class TestCoreTelemetry(unittest.TestCase): @@ -57,3 +58,24 @@ def test_cloud_forbid_telemetry(self): # mock to add current cloud name in CLOUDS_FORBIDDING_TELEMETRY with mock.patch('azure.cli.core.cloud.CLOUDS_FORBIDDING_TELEMETRY', [az_cli.cloud.name]): self.assertFalse(telemetry.is_telemetry_enabled()) + + @mock.patch('azure.cli.core.util.get_az_version_string') + def test_show_version_sets_telemetry_params(self, mock_get_version): + """Test show_version telemetry state is same regardless of available updates.""" + from azure.cli.core.mock import DummyCli + from azure.cli.core import telemetry + from knack.completion import ARGCOMPLETE_ENV_NAME + + mock_get_version.return_value = ("azure-cli 2.80.0", ["core", "extension1"]) + + telemetry.start() + + cli = DummyCli() + telemetry.set_application(cli, ARGCOMPLETE_ENV_NAME) + + cli.show_version() + + session = telemetry._session + self.assertEqual(session.command, "") + self.assertEqual(session.parameters, ["--version"]) + self.assertIsNone(session.raw_command)