Azure / Azure/azure-cli

TypeError not being caught when using --query on experimental command group: az account subscription

Open
#24,969 1 comment 1 reaction 1 assignee Claimed by @jiasli View on GitHub
Account act-identity-squad Auto-Assign Azure CLI Team customer-reported feature-request
Dominant language
Python
Stars
4.6k
Forks
3.5k
Avg merge
3d 2h
Merged PRs (30d)
60

Description

**Related command**
`az account subscription list-location --subscription-id "$subid" --query "[? contains(name, "uk")]"`

**Describe the bug**
`--query "[? contains(name, "uk")]"` should use single quotes instead of double quotes. In which case the following TypeError is not being caught and generates a traceback in the az cli:

`TypeError: 'in ' requires string as left operand, not NoneType`

The correct version of the command (single quotes) works as expected:
`az account subscription list-location --subscription-id "$subid" --query "[? contains(name, 'uk')]"`

**To Reproduce**
`az account subscription list-location --subscription-id "$subid" --query "[? contains(name, "uk")]"`

**Expected behavior**
The error should be caught and output should silenced. This would make the behaviour consistent with GA status command groups. For example, the following equivalent invalid query (double quotes) will silence the output instead:
`az account show --query "[? contains(name, "uk")]"`

**Additional comments**
The existing behaviour of silencing output is applied in both cases of
`az account show --query "[? contains(name, "uk")]"` (bad syntax) and `az account show --query "[? contains(name, 'uk')]"` (good syntax). In my opinion this isn't optimal as it doesn't differentiate between a syntax error and a not found result (valid user experience). Ideally the caught error should be communicated differently (i.e. not silenced) to the user so that they can modify their syntax accordingly. Otherwise they may mistakenly believe that their syntax was valid but that the string they searched for did not exist.

**Environment summary**
`az version -o table`
Azure-cli Azure-cli-core Azure-cli-telemetry
----------- ---------------- ---------------------
2.42.0 2.42.0 1.0.8

`echo $BASH_VERSION`
4.4.23(1)-release

`az extension list -o table`
Experimental ExtensionType Name Path Preview Version
False whl account C:\Users\dc\.azure\cliextensions\account False 0.2.5
False whl azure-devops C:\Users\dc\.azure\cliextensions\azure-devops False 0.25.0
False whl datafactory C:\Users\dc\.azure\cliextensions\datafactory False 0.7.0
False whl storage-preview C:\Users\dc\.azure\cliextensions\storage-preview True 0.3.0

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.