I have a variable file which defines a variable like dictionary in dictionary and variable functions.
global.py
DEFAULT_VAL=111
TEST_VAR={'key1':{'elem1':'val1', 'elem2':'val2', 'elem3':'val3'}, 'key2':{'elem2':'val2', 'elem3':'val3'}}
def get_elem1_or_default_1(key):
return TEST_VAR[key]['elem1'] if 'elem1' in TEST_VAR[key] else DEFAULT_VAL
def get_elem1_or_default_2(key_dict):
return key_dict['elem1'] if 'elem1' in key_dict else DEFAULT_VAL
From robot I can call variable function 'get_elem1_or_default_1' which accept string as key, like this:
*** Settings ***
Variables Global.py
${var} Set variable ${get_elem1_or_default_1('key2')}
INFO : ${var} = 111
But when I try to call another function 'get_elem1_or_default_2' which accept dict as argument I get an error
${key_dict} Evaluate ${TEST_VAR}['key1']
${var} Set variable ${get_elem1_or_default_2(${key_dict})}
INFO : ${key_dict} = {'elem2': 'val2', 'elem3': 'val3', 'elem1': 'val1'} FAIL : Invalid variable name '${get_elem1_or_default_2({'elem2': 'val2', 'elem3': 'val3', 'elem1': 'val1'})}'.
Is it possible to do so or something is wrong? May be there is another way?
Thanks!