mistral/mistral/tests/unit
Renat Akhmerov a39db2d3dc Fix how Mistral prepares data for evaluating a YAQL expression
* If we use the built-in YAQL function 'str' in a workflow then it
  doesn't represent lists as '[item1, item3, ...]' but instead
  creates '(item1, item2,...). This is because the standard YAQL
  function 'yaql_utils.convert_input_data', which is needed to
  convert a initial user data into an internal YAQL format,
  converts all sequences (except strings) into tuples.
  This patch overrides this behavior for sequences that are not
  strings and tuples so that they now get converted into lists.
  YAQL uses tuples because it needs to obtain a safe immutable
  structure to make calculations upon. But in Mistral list is
  more suitable because lots of users care about string
  representations. Immutability is not so important because
  Mistral code base guarantees that the initial data context
  for an expression won't be changed while an expression is
  being evaluated by YAQL.
* "str" YAQL function used to work well but it was broken in
  https://review.openstack.org/#/c/477816/ that added additional
  context preparation in order to fix the issue
  https://bugs.launchpad.net/mistral/+bug/1772864

Change-Id: I69d32f8772418d586d6c414842bb54aada217481
Closes-Bug: #1815710
2019-02-14 12:20:12 +07:00
..
actions Fix senlin fake client creation 2018-11-06 11:52:32 +01:00
api Add a workflow execution report endpoint 2019-02-11 15:03:35 +07:00
db Eliminating datetime.now() 2018-11-21 10:51:44 +01:00
engine Fix how Mistral prepares data for evaluating a YAQL expression 2019-02-14 12:20:12 +07:00
executors Implement notification of execution events 2018-02-24 07:25:55 +00:00
expressions Add YAQL engine options 2018-06-01 17:06:57 +07:00
hacking Fix the pep8 commands failed 2017-07-27 22:15:12 +08:00
lang Update OnClauseSPec task name criteria 2018-10-12 11:58:22 -05:00
mstrlfixtures Adding Keycloak authorization support. 2018-02-07 09:01:08 +00:00
notifiers Sending TASK_FAILED event in case of MistralException 2019-02-07 19:33:10 +00:00
policies Add a policy to control the right to publish resources 2018-07-05 11:46:52 +02:00
rpc Remove remaining references to the rpc_backend 2018-10-12 11:23:50 +07:00
scheduler Eliminating datetime.now() 2018-11-21 10:51:44 +01:00
services Eliminating datetime.now() 2018-11-21 10:51:44 +01:00
utils Clarify REST field valiation error 2018-11-27 09:51:01 +01:00
workflow Allow engine commands as task name 2018-07-19 14:23:18 +00:00
__init__.py Fixed engine tests 2016-01-29 02:19:19 +00:00
base.py Minor bug of _assert_multiple_items function 2018-09-03 10:41:03 +04:00
config.py Fixed integration of the unit tests with PosrgeSQL 2018-01-23 04:37:08 +00:00
test_command_dispatcher.py Remove unnecessary setUp function in testcase 2017-04-03 09:42:20 +00:00
test_context.py Explicitly convert X-Target-Insecure to a boolean 2018-08-22 09:48:30 +01:00
test_coordination.py Tests: Remove the redundant method 2017-07-12 16:41:31 +08:00
test_exception_base.py Add a unit test to check initializers of MistralException hierarcy 2018-03-14 15:09:30 +07:00
test_expressions.py Correct missspellings of secret 2016-12-12 21:25:27 +00:00
test_launcher.py Implement notification of execution events 2018-02-24 07:25:55 +00:00
test_version.py Update version.version_string to actually be a string 2018-10-09 11:30:10 -05:00