diff --git a/src/azure-cli/azure/cli/command_modules/storage/_validators.py b/src/azure-cli/azure/cli/command_modules/storage/_validators.py index f0afc484815..c4ced3e18e0 100644 --- a/src/azure-cli/azure/cli/command_modules/storage/_validators.py +++ b/src/azure-cli/azure/cli/command_modules/storage/_validators.py @@ -2102,9 +2102,10 @@ def validate_share_close_handle(namespace): def validate_upload_blob(namespace): from azure.cli.core.azclierror import InvalidArgumentValueError - if namespace.file_path and namespace.data: + has_data = namespace.data is not None + if namespace.file_path and has_data: raise InvalidArgumentValueError("usage error: please only specify one of --file and --data to upload.") - if not namespace.file_path and not namespace.data: + if not namespace.file_path and not has_data: raise InvalidArgumentValueError("usage error: please specify one of --file and --data to upload.") diff --git a/src/azure-cli/azure/cli/command_modules/storage/tests/latest/test_storage_validators.py b/src/azure-cli/azure/cli/command_modules/storage/tests/latest/test_storage_validators.py index f371b38e115..98b73a150dc 100644 --- a/src/azure-cli/azure/cli/command_modules/storage/tests/latest/test_storage_validators.py +++ b/src/azure-cli/azure/cli/command_modules/storage/tests/latest/test_storage_validators.py @@ -20,7 +20,7 @@ get_source_file_or_blob_service_client_track2, validate_encryption_source, validate_source_uri, validate_encryption_services, as_user_validator, - get_not_none_validator) + get_not_none_validator, validate_upload_blob) class MockCLI(CLI): @@ -183,6 +183,19 @@ def test_get_not_none_validator(self): validate_arg(cmd, Namespace(arg=0)) validate_arg(cmd, Namespace(arg=False)) + def test_validate_upload_blob(self): + from azure.cli.core.azclierror import InvalidArgumentValueError + + validate_upload_blob(Namespace(file_path=None, data='')) + validate_upload_blob(Namespace(file_path=None, data='test data')) + validate_upload_blob(Namespace(file_path='test.txt', data=None)) + + with self.assertRaisesRegex(InvalidArgumentValueError, 'please only specify one of --file and --data'): + validate_upload_blob(Namespace(file_path='test.txt', data='')) + + with self.assertRaisesRegex(InvalidArgumentValueError, 'please specify one of --file and --data'): + validate_upload_blob(Namespace(file_path=None, data=None)) + class TestEncryptionValidators(unittest.TestCase): def setUp(self):