show command now properly uses list of validations

Signed-off-by: Jiri Podivin <jpodivin@redhat.com>
Change-Id: Iced465a7380acc2bd7065c1fc2dc34e6ddcd9b15
This commit is contained in:
Jiri Podivin 2021-02-15 10:54:29 +01:00
parent e4eaf3fda1
commit f60caf8e66
2 changed files with 30 additions and 7 deletions

View File

@ -212,7 +212,7 @@ class TestValidationActions(TestCase):
@mock.patch('json.load',
return_value=fakes.VALIDATIONS_LOGS_CONTENTS_LIST[0])
@mock.patch('six.moves.builtins.open')
def test_show_history(self, mock_open, mock_load, mock_get_log):
def test_show_history_str(self, mock_open, mock_load, mock_get_log):
v_actions = ValidationActions()
col, values = v_actions.show_history('512e')
self.assertEqual(col, ('UUID', 'Validations',
@ -223,6 +223,23 @@ class TestValidationActions(TestCase):
'2019-11-25T13:40:14.404623Z',
'0:00:03.753')])
@mock.patch('validations_libs.validation_logs.ValidationLogs.'
'get_logfile_by_validation',
return_value=['/tmp/123_foo_2020-03-30T13:17:22.447857Z.json'])
@mock.patch('json.load',
return_value=fakes.VALIDATIONS_LOGS_CONTENTS_LIST[0])
@mock.patch('six.moves.builtins.open')
def test_show_history_list(self, mock_open, mock_load, mock_get_log):
v_actions = ValidationActions()
col, values = v_actions.show_history(['512e'])
self.assertEqual(col, ('UUID', 'Validations',
'Status', 'Execution at',
'Duration'))
self.assertEqual(values, [('008886df-d297-1eaa-2a74-000000000008',
'512e', 'PASSED',
'2019-11-25T13:40:14.404623Z',
'0:00:03.753')])
@mock.patch('validations_libs.validation_logs.ValidationLogs.'
'get_all_logfiles',
return_value=['/tmp/123_foo_2020-03-30T13:17:22.447857Z.json'])

View File

@ -408,12 +408,12 @@ class ValidationActions(object):
default_flow_style=False,
indent=2)
def show_history(self, validation_id=None, extension='json',
def show_history(self, validation_ids=None, extension='json',
log_path=constants.VALIDATIONS_LOG_BASEDIR):
"""Return validation executions history
:param validation_id: The validation id
:type validation_id: ``string``
:param validation_ids: The validation ids
:type validation_ids: a list of strings
:param extension: The log file extension (Defaults to ``json``)
:type extension: ``string``
:param log_path: The absolute path of the validations logs directory
@ -449,7 +449,7 @@ class ValidationActions(object):
'2020-11-13T11:47:50.279662Z',
'0:00:02.237')])
>>> actions = ValidationActions(constants.ANSIBLE_VALIDATION_DIR)
>>> print(actions.show_history(validation_id='foo'))
>>> print(actions.show_history(validation_ids=['foo']))
(('UUID', 'Validations', 'Status', 'Execution at', 'Duration'),
[('5afb1597-e2a1-4635-b2df-7afe21d00de6',
'foo',
@ -463,8 +463,14 @@ class ValidationActions(object):
'0:00:02.237')])
"""
vlogs = ValidationLogs(log_path)
logs = (vlogs.get_logfile_by_validation(validation_id)
if validation_id else vlogs.get_all_logfiles(extension))
if validation_ids:
if not isinstance(validation_ids, list):
validation_ids = [validation_ids]
logs = []
for validation_id in validation_ids:
logs.extend(vlogs.get_logfile_by_validation(validation_id))
else:
logs = vlogs.get_all_logfiles(extension)
values = []
column_name = ('UUID', 'Validations',