RobotFramework: cateate с циклом FOR - PullRequest
0 голосов
/ 21 марта 2019

Я довольно новичок в использовании RobotFramework и пытаюсь отформатировать строку с помощью Catenate, интересно, могу ли я использовать цикл FOR при форматировании строки, и ниже приведен правильный формат?Любое предложение будет оценено, спасибо !!!

${data}=    Catenate
...    {
...    "email_address": "${NewUserEmailID}",
...    "user_name": "${UserName}",
...    "roles": [
...    :FOR    ${roleId}, ${catID}, ${subcatID}    IN    @{role_id_list}, @{category_id_list}, @{subCat_id_list}
...    /    {
...    /    "role_id": ${roleId},
...    /    "categories": [{ "category_id": "${catID}" }],
...    /    "subcats":[{ "sub_category_id": "${subcatID}" }]
...    /    },
...    ],
...    "line_manager": "${LineManageID}",
...    "guest_user": ${GuestUser},
...    "guest_invitation_text":    "Invitation Text",
...    "guest_redirect_url":    "http://www.example.com/guest",
...    "organization_id":    1
...    }

1 Ответ

0 голосов
/ 22 марта 2019

интересно, можно ли использовать цикл FOR при форматировании строки

Нет, в смысле выполнения цикла и добавления значений каждой итерации к цели Catenate,Что произойдет, так это то, что в конечном итоге в строке будет ": FOR", "@ {role_id_list}" и т. Д.

Но добиться того, чего вы хотите, не так уж и сложно - просто создайте цикл, который создаст промежуточную строку, и добавьте , что , в Catenate.Например:

${roles array}=    Set Variable    ${EMPTY}    # initialize an empty string variable

:FOR    ${roleId}    ${catID}    ${subcatID}    IN ZIP    ${role_id_list}    ${category_id_list}    ${subCat_id_list}
/    ${roles array}=    Set Variable    ${roles array}{  # you append the target string to the end of the current value of the variable
/    ${roles array}=    Set Variable    ${roles array}"role_id": ${roleId},
/    ${roles array}=    Set Variable    ${roles array}"categories": [{ "category_id": "${catID}" }],
/    ${roles array}=    Set Variable    ${roles array}"subcats":[{ "sub_category_id": "${subcatID}" }]
/    ${roles array}=    Set Variable    ${roles array}},

# and now use it inside the Catenate
${data}=    Catenate
...    {
...    "email_address": "${NewUserEmailID}",
...    "user_name": "${UserName}",
...    "roles": [ ${roles array}
...    ],
...    "line_manager": "${LineManageID}",
...    "guest_user": ${GuestUser},
...    "guest_invitation_text":    "Invitation Text",
...    "guest_redirect_url":    "http://www.example.com/guest",
...    "organization_id":    1
...    }

Как вы заметили, синтаксис для перебора более чем одного списка несколько отличается - нужно использовать IN ZIP (который исходит из / isаналог функции zip() Python).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...