Add missing schema validation and unit tests for 'publish-on-error'

Change-Id: I87719d9ed9af7560fdff7af9215d99a686c4d8df
This commit is contained in:
Renat Akhmerov 2017-03-24 16:31:33 +07:00
parent fbe2b3289a
commit f7e04b3ef9
2 changed files with 26 additions and 0 deletions

View File

@ -128,6 +128,7 @@ class TaskSpec(base.BaseSpec):
self.validate_expr(self._data.get('input', {}))
self.validate_expr(self._data.get('publish', {}))
self.validate_expr(self._data.get('publish-on-error', {}))
self.validate_expr(self._data.get('keep-result', {}))
self.validate_expr(self._data.get('safe-rerun', {}))

View File

@ -166,6 +166,31 @@ class TaskSpecValidation(v2_base.WorkflowSpecValidationTestCase):
expect_error=expect_error
)
def test_publish_on_error(self):
tests = [
({'publish-on-error': ''}, True),
({'publish-on-error': {}}, True),
({'publish-on-error': None}, True),
({'publish-on-error': {'k1': 'v1'}}, False),
({'publish-on-error': {'k1': '<% $.v1 %>'}}, False),
({'publish-on-error': {'k1': '<% 1 + 2 %>'}}, False),
({'publish-on-error': {'k1': '<% * %>'}}, True),
({'publish-on-error': {'k1': '{{ _.v1 }}'}}, False),
({'publish-on-error': {'k1': '{{ 1 + 2 }}'}}, False),
({'publish-on-error': {'k1': '{{ * }}'}}, True)
]
for output, expect_error in tests:
overlay = {'test': {'tasks': {'task1': {'action': 'test.mock'}}}}
utils.merge_dicts(overlay['test']['tasks']['task1'], output)
self._parse_dsl_spec(
add_tasks=False,
changes=overlay,
expect_error=expect_error
)
def test_policies(self):
tests = [
({'retry': {'count': 3, 'delay': 1}}, False),