Parse blob dict upload output right

Change-Id: Ie9aca92820d35576862a5580fc4de8b3237cba03
This commit is contained in:
Mike Fedosin 2017-01-16 22:58:46 +03:00
parent 6ed07b9320
commit 68ed374835
2 changed files with 54 additions and 2 deletions

View File

@ -120,7 +120,11 @@ class UploadBlob(command.ShowOne):
data = client.artifacts.get(af_id, type_name=parsed_args.type_name)
data_to_display = {'blob_property': parsed_args.blob_property}
data_to_display.update(data[parsed_args.blob_property])
if '/' in parsed_args.blob_property:
dict_name, __, key_name = parsed_args.blob_property.partition('/')
data_to_display.update(data[dict_name][key_name])
else:
data_to_display.update(data[parsed_args.blob_property])
return self.dict2columns(data_to_display)
@ -272,5 +276,9 @@ class AddLocation(command.ShowOne):
type_name=parsed_args.type_name)
data_to_display = {'blob_property': parsed_args.blob_property}
data_to_display.update(data[parsed_args.blob_property])
if '/' in parsed_args.blob_property:
dict_name, __, key_name = parsed_args.blob_property.partition('/')
data_to_display.update(data[dict_name][key_name])
else:
data_to_display.update(data[parsed_args.blob_property])
return self.dict2columns(data_to_display)

View File

@ -184,6 +184,30 @@ class TestUploadBlob(TestBlobs):
self.assertEqual(self.COLUMNS, columns)
self.assertEqual(exp_data, data)
def test_upload_blob_dict(self):
exp_data = ('nested_templates/blob', 'application/octet-stream',
False,
'35d83e8eedfbdb87ff97d1f2761f8ebf',
'942854360eeec1335537702399c5aed940401602',
'd8a7834fc6652f316322d80196f6dcf2'
'94417030e37c15412e4deb7a67a367dd',
594, 'active', 'fake_url')
arglist = ['images',
'fc15c365-d4f9-4b8b-a090-d9e230f1f6ba',
'--file', '/path/to/file',
'--blob-property', 'nested_templates/blob']
verify = [('type_name', 'images')]
parsed_args = self.check_parser(self.cmd, arglist, verify)
self.app.client_manager.artifact.artifacts.get = \
lambda *args, **kwargs: {
'nested_templates': {'blob': fakes.blob_fixture}
}
columns, data = self.cmd.take_action(parsed_args)
self.app.client_manager.artifact.artifacts.get = fakes.mock_get
self.assertEqual(self.COLUMNS, columns)
self.assertEqual(exp_data, data)
class TestDownloadBlob(TestBlobs):
def setUp(self):
@ -262,3 +286,23 @@ class TestAddLocation(TestBlobs):
parsed_args = self.check_parser(self.cmd, arglist, verify)
columns, data = self.cmd.take_action(parsed_args)
self.assertEqual(self.COLUMNS, columns)
def test_add_dict_location(self):
arglist = ['images',
'fc15c365-d4f9-4b8b-a090-d9e230f1f6ba', '--id',
'--blob-property', 'nested_templates/blob',
'--url', 'fake_url',
'--md5', "35d83e8eedfbdb87ff97d1f2761f8ebf",
'--sha1', "942854360eeec1335537702399c5aed940401602",
'--sha256', "d8a7834fc6652f316322d80196f6dcf2"
"94417030e37c15412e4deb7a67a367dd"]
verify = [('type_name', 'images'), ('url', 'fake_url')]
parsed_args = self.check_parser(self.cmd, arglist, verify)
self.app.client_manager.artifact.artifacts.get = \
lambda *args, **kwargs: {
'nested_templates': {'blob': fakes.blob_fixture}
}
columns, data = self.cmd.take_action(parsed_args)
self.app.client_manager.artifact.artifacts.get = fakes.mock_get
self.assertEqual(self.COLUMNS, columns)