Skip to content

Commit 046b63f

Browse files
committed
[Storage] az storage blob allow empty blob with data
1 parent 0ff7e50 commit 046b63f

2 files changed

Lines changed: 17 additions & 3 deletions

File tree

‎src/azure-cli/azure/cli/command_modules/storage/_validators.py‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2102,9 +2102,10 @@ def validate_share_close_handle(namespace):
21022102

21032103
def validate_upload_blob(namespace):
21042104
from azure.cli.core.azclierror import InvalidArgumentValueError
2105-
if namespace.file_path and namespace.data:
2105+
has_data = namespace.data is not None
2106+
if namespace.file_path and has_data:
21062107
raise InvalidArgumentValueError("usage error: please only specify one of --file and --data to upload.")
2107-
if not namespace.file_path and not namespace.data:
2108+
if not namespace.file_path and not has_data:
21082109
raise InvalidArgumentValueError("usage error: please specify one of --file and --data to upload.")
21092110

21102111

‎src/azure-cli/azure/cli/command_modules/storage/tests/latest/test_storage_validators.py‎

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
get_source_file_or_blob_service_client_track2,
2121
validate_encryption_source, validate_source_uri,
2222
validate_encryption_services, as_user_validator,
23-
get_not_none_validator)
23+
get_not_none_validator, validate_upload_blob)
2424

2525

2626
class MockCLI(CLI):
@@ -183,6 +183,19 @@ def test_get_not_none_validator(self):
183183
validate_arg(cmd, Namespace(arg=0))
184184
validate_arg(cmd, Namespace(arg=False))
185185

186+
def test_validate_upload_blob(self):
187+
from azure.cli.core.azclierror import InvalidArgumentValueError
188+
189+
validate_upload_blob(Namespace(file_path=None, data=''))
190+
validate_upload_blob(Namespace(file_path=None, data='test data'))
191+
validate_upload_blob(Namespace(file_path='test.txt', data=None))
192+
193+
with self.assertRaisesRegex(InvalidArgumentValueError, 'please only specify one of --file and --data'):
194+
validate_upload_blob(Namespace(file_path='test.txt', data=''))
195+
196+
with self.assertRaisesRegex(InvalidArgumentValueError, 'please specify one of --file and --data'):
197+
validate_upload_blob(Namespace(file_path=None, data=None))
198+
186199

187200
class TestEncryptionValidators(unittest.TestCase):
188201
def setUp(self):

0 commit comments

Comments
 (0)