Каркас робота, общая функция для присвоения имени списку

Я пытаюсь создать ключевое слово, которое будет экспортировать список как переменную набора, но я не могу понять, как передать имя, чтобы превратить его в имя переменной.

    *** Test Cases ***
Get Ref
    ${list} =   Create List     k   l   m   n  e
    Rename List   myName  ${list}
    log     @{myName}


*** Keywords ***
Rename List
    [Arguments]  ${name}    ${values}
    log     first: ${values[1]}
    @{name}=     Create List  ${values[1]}    ${values[3]}
    set suite variable  @{name}

Ключевое слово принимает строку и список, создает меньший список и экспортирует его с предоставленной строкой имени. В качестве варианта использования вам нужна универсальная функция, которая может принимать значения из раскрывающегося списка на веб-странице и возвращать вам только элементы 1, 3 и 5 в виде нового списка с указанным вами именем. Таким образом, вы могли бы вызывать его несколько раз с разными именами, экспортируя разные списки, которые вы могли бы использовать позже. Есть ли способ заставить это работать?


person Luxifer    schedule 06.08.2016    source источник
comment
вместо rename list myName ${list}, почему бы просто не использовать ${myName}= rename list ${list} или просто ${myName}= create list @{list}? Какой смысл передавать имя ключевому слову?   -  person Bryan Oakley    schedule 06.08.2016
comment
Я хочу иметь возможность вызывать его несколько раз, чтобы вы могли создать несколько списков в одном наборе, каждый с уникальным именем. Первый вариант, который вы предлагаете, является работоспособным решением, второй не допускает никаких манипуляций внутри функции (разделение, установка переменных набора и т. д.). Я надеялся на что-то более элегантное, но, возможно, я застрял на том, что я хотите, а не то, что работает.   -  person Luxifer    schedule 06.08.2016
comment
Исправление (поскольку уже поздно редактировать), нет, у меня это не работает, так как я хочу вызвать Set Suite Variable в своем новом списке.   -  person Luxifer    schedule 06.08.2016


Ответы (1)


Кажется, это делает то, что вы хотите, если я правильно понимаю вопрос:

*** keywords ***
rename list
    [Arguments]    ${name}    ${values}
    ${new}=    create list    @{values}
    set suite variable    ${${name}}  ${new}
person Bryan Oakley    schedule 06.08.2016
comment
Это прекрасно работает. Раньше я пытался использовать метод ${${name}}, но не так. Единственное изменение, которое я сделал, это использовать set suite variable @{${name}} @{new} Спасибо! - person Luxifer; 07.08.2016