Merge "Output format is corrected for wf-validate and wb-validate" into stable/liberty
This commit is contained in:
		@@ -21,7 +21,6 @@ from cliff import show
 | 
			
		||||
 | 
			
		||||
from mistralclient.api.v2 import workbooks
 | 
			
		||||
from mistralclient.commands.v2 import base
 | 
			
		||||
from mistralclient import exceptions as exc
 | 
			
		||||
from mistralclient import utils
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -166,6 +165,20 @@ class GetDefinition(command.Command):
 | 
			
		||||
class Validate(show.ShowOne):
 | 
			
		||||
    """Validate workbook."""
 | 
			
		||||
 | 
			
		||||
    def _format(self, result=None):
 | 
			
		||||
        columns = ('Valid', 'Error')
 | 
			
		||||
 | 
			
		||||
        if result:
 | 
			
		||||
            data = (result.get('valid'),)
 | 
			
		||||
            if not result.get('error'):
 | 
			
		||||
                data += (None,)
 | 
			
		||||
            else:
 | 
			
		||||
                data += (result.get('error'),)
 | 
			
		||||
        else:
 | 
			
		||||
            data = (tuple('<none>' for _ in range(len(columns))),)
 | 
			
		||||
 | 
			
		||||
        return columns, data
 | 
			
		||||
 | 
			
		||||
    def get_parser(self, prog_name):
 | 
			
		||||
        parser = super(Validate, self).get_parser(prog_name)
 | 
			
		||||
 | 
			
		||||
@@ -181,8 +194,4 @@ class Validate(show.ShowOne):
 | 
			
		||||
        result = workbooks.WorkbookManager(self.app.client).validate(
 | 
			
		||||
            parsed_args.definition.read())
 | 
			
		||||
 | 
			
		||||
        if not result.get('valid', None):
 | 
			
		||||
            raise exc.MistralClientException(
 | 
			
		||||
                result.get('error', 'Unknown exception.'))
 | 
			
		||||
 | 
			
		||||
        return tuple(), tuple()
 | 
			
		||||
        return self._format(result)
 | 
			
		||||
 
 | 
			
		||||
@@ -21,7 +21,6 @@ from cliff import show
 | 
			
		||||
 | 
			
		||||
from mistralclient.api.v2 import workflows
 | 
			
		||||
from mistralclient.commands.v2 import base
 | 
			
		||||
from mistralclient import exceptions as exc
 | 
			
		||||
from mistralclient import utils
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -194,6 +193,20 @@ class GetDefinition(command.Command):
 | 
			
		||||
class Validate(show.ShowOne):
 | 
			
		||||
    """Validate workflow."""
 | 
			
		||||
 | 
			
		||||
    def _format(self, result=None):
 | 
			
		||||
        columns = ('Valid', 'Error')
 | 
			
		||||
 | 
			
		||||
        if result:
 | 
			
		||||
            data = (result.get('valid'),)
 | 
			
		||||
            if not result.get('error'):
 | 
			
		||||
                data += (None,)
 | 
			
		||||
            else:
 | 
			
		||||
                data += (result.get('error'),)
 | 
			
		||||
        else:
 | 
			
		||||
            data = (tuple('<none>' for _ in range(len(columns))),)
 | 
			
		||||
 | 
			
		||||
        return columns, data
 | 
			
		||||
 | 
			
		||||
    def get_parser(self, prog_name):
 | 
			
		||||
        parser = super(Validate, self).get_parser(prog_name)
 | 
			
		||||
 | 
			
		||||
@@ -209,8 +222,4 @@ class Validate(show.ShowOne):
 | 
			
		||||
        result = workflows.WorkflowManager(self.app.client).validate(
 | 
			
		||||
            parsed_args.definition.read())
 | 
			
		||||
 | 
			
		||||
        if not result.get('valid', None):
 | 
			
		||||
            raise exc.MistralClientException(
 | 
			
		||||
                result.get('error', 'Unknown exception.'))
 | 
			
		||||
 | 
			
		||||
        return tuple(), tuple()
 | 
			
		||||
        return self._format(result)
 | 
			
		||||
 
 | 
			
		||||
@@ -182,6 +182,27 @@ class WorkbookCLITests(base_v2.MistralClientTestBase):
 | 
			
		||||
            'workbook-get-definition', params=wb_name)
 | 
			
		||||
        self.assertNotIn('404 Not Found', definition)
 | 
			
		||||
 | 
			
		||||
    def test_workbook_validate_with_valid_def(self):
 | 
			
		||||
        wb = self.mistral_admin(
 | 
			
		||||
            'workbook-validate', params=self.wb_def)
 | 
			
		||||
        wb_valid = self.get_value_of_field(wb, 'Valid')
 | 
			
		||||
        wb_error = self.get_value_of_field(wb, 'Error')
 | 
			
		||||
 | 
			
		||||
        self.assertEqual('True', wb_valid)
 | 
			
		||||
        self.assertEqual('None', wb_error)
 | 
			
		||||
 | 
			
		||||
    def test_workbook_validate_with_invalid_def(self):
 | 
			
		||||
        self.create_file('wb.yaml',
 | 
			
		||||
                         'name: wb\n')
 | 
			
		||||
        wb = self.mistral_admin(
 | 
			
		||||
            'workbook-validate', params='wb.yaml')
 | 
			
		||||
 | 
			
		||||
        wb_valid = self.get_value_of_field(wb, 'Valid')
 | 
			
		||||
        wb_error = self.get_value_of_field(wb, 'Error')
 | 
			
		||||
 | 
			
		||||
        self.assertEqual('False', wb_valid)
 | 
			
		||||
        self.assertNotEqual('None', wb_error)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class WorkflowCLITests(base_v2.MistralClientTestBase):
 | 
			
		||||
    """Test suite checks commands to work with workflows."""
 | 
			
		||||
@@ -268,6 +289,27 @@ class WorkflowCLITests(base_v2.MistralClientTestBase):
 | 
			
		||||
            'workflow-get-definition', params=wf_name)
 | 
			
		||||
        self.assertNotIn('404 Not Found', definition)
 | 
			
		||||
 | 
			
		||||
    def test_workflow_validate_with_valid_def(self):
 | 
			
		||||
        wf = self.mistral_admin(
 | 
			
		||||
            'workflow-validate', params=self.wf_def)
 | 
			
		||||
        wf_valid = self.get_value_of_field(wf, 'Valid')
 | 
			
		||||
        wf_error = self.get_value_of_field(wf, 'Error')
 | 
			
		||||
 | 
			
		||||
        self.assertEqual('True', wf_valid)
 | 
			
		||||
        self.assertEqual('None', wf_error)
 | 
			
		||||
 | 
			
		||||
    def test_workflow_validate_with_invalid_def(self):
 | 
			
		||||
        self.create_file('wf.yaml',
 | 
			
		||||
                         'name: wf\n')
 | 
			
		||||
        wf = self.mistral_admin(
 | 
			
		||||
            'workflow-validate', params='wf.yaml')
 | 
			
		||||
 | 
			
		||||
        wf_valid = self.get_value_of_field(wf, 'Valid')
 | 
			
		||||
        wf_error = self.get_value_of_field(wf, 'Error')
 | 
			
		||||
 | 
			
		||||
        self.assertEqual('False', wf_valid)
 | 
			
		||||
        self.assertNotEqual('None', wf_error)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class ExecutionCLITests(base_v2.MistralClientTestBase):
 | 
			
		||||
    """Test suite checks commands to work with executions."""
 | 
			
		||||
 
 | 
			
		||||
@@ -17,7 +17,6 @@ import mock
 | 
			
		||||
 | 
			
		||||
from mistralclient.api.v2 import workbooks
 | 
			
		||||
from mistralclient.commands.v2 import workbooks as workbook_cmd
 | 
			
		||||
from mistralclient import exceptions as exc
 | 
			
		||||
from mistralclient.tests.unit import base
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -117,8 +116,7 @@ class TestCLIWorkbooksV2(base.BaseCommandTest):
 | 
			
		||||
 | 
			
		||||
        result = self.call(workbook_cmd.Validate, app_args=['wb.yaml'])
 | 
			
		||||
 | 
			
		||||
        self.assertEqual(result[0], tuple())
 | 
			
		||||
        self.assertEqual(result[1], tuple())
 | 
			
		||||
        self.assertEqual(result[1], (True, None))
 | 
			
		||||
 | 
			
		||||
    @mock.patch('argparse.open', create=True)
 | 
			
		||||
    @mock.patch('mistralclient.api.v2.workbooks.WorkbookManager.validate')
 | 
			
		||||
@@ -126,7 +124,6 @@ class TestCLIWorkbooksV2(base.BaseCommandTest):
 | 
			
		||||
        mock.return_value = {'valid': False, 'error': 'Invalid DSL...'}
 | 
			
		||||
        mock_open.return_value = mock.MagicMock(spec=open)
 | 
			
		||||
 | 
			
		||||
        self.assertRaises(exc.MistralClientException,
 | 
			
		||||
                          self.call,
 | 
			
		||||
                          workbook_cmd.Validate,
 | 
			
		||||
                          app_args=['wb.yaml'])
 | 
			
		||||
        result = self.call(workbook_cmd.Validate, app_args=['wb.yaml'])
 | 
			
		||||
 | 
			
		||||
        self.assertEqual(result[1], (False, 'Invalid DSL...'))
 | 
			
		||||
 
 | 
			
		||||
@@ -19,7 +19,6 @@ import six
 | 
			
		||||
from mistralclient.api.v2 import workflows
 | 
			
		||||
from mistralclient.commands.v2 import base as cmd_base
 | 
			
		||||
from mistralclient.commands.v2 import workflows as workflow_cmd
 | 
			
		||||
from mistralclient import exceptions as exc
 | 
			
		||||
from mistralclient.tests.unit import base
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -160,8 +159,7 @@ class TestCLIWorkflowsV2(base.BaseCommandTest):
 | 
			
		||||
 | 
			
		||||
        result = self.call(workflow_cmd.Validate, app_args=['wf.yaml'])
 | 
			
		||||
 | 
			
		||||
        self.assertEqual(result[0], tuple())
 | 
			
		||||
        self.assertEqual(result[1], tuple())
 | 
			
		||||
        self.assertEqual(result[1], (True, None))
 | 
			
		||||
 | 
			
		||||
    @mock.patch('argparse.open', create=True)
 | 
			
		||||
    @mock.patch('mistralclient.api.v2.workflows.WorkflowManager.validate')
 | 
			
		||||
@@ -169,7 +167,6 @@ class TestCLIWorkflowsV2(base.BaseCommandTest):
 | 
			
		||||
        mock.return_value = {'valid': False, 'error': 'Invalid DSL...'}
 | 
			
		||||
        mock_open.return_value = mock.MagicMock(spec=open)
 | 
			
		||||
 | 
			
		||||
        self.assertRaises(exc.MistralClientException,
 | 
			
		||||
                          self.call,
 | 
			
		||||
                          workflow_cmd.Validate,
 | 
			
		||||
                          app_args=['wf.yaml'])
 | 
			
		||||
        result = self.call(workflow_cmd.Validate, app_args=['wf.yaml'])
 | 
			
		||||
 | 
			
		||||
        self.assertEqual(result[1], (False, 'Invalid DSL...'))
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user