Синтаксическая ошибка вложенного словаря RF 3.0.4, если первый ключ - число, точечная запись не работает - PullRequest
0 голосов
/ 10 декабря 2018

Я использую rf 3.0.4. Я обновился из-за обновления точечной нотации (до того, как я использовал rf 2.9).Моя проблема в том, что когда я хочу получить доступ к вложенному словарному элементу, а первый ключ (это идентификатор из db) - это число, я получаю синтаксическую ошибку.

У меня есть вложенный словарь: &{Attributes}

Итак, что я хочу сделать:

${Attributes.1000.name}

Синтаксическая ошибка, которую я получаю:

Разрешение переменной '${Attributes.1000.name}' failed: SyntaxError: invalid syntax (<string>, line 1)

И что работает:

${Attributes["1000"]["name"]}

Я бы хотел использовать точечную запись, потому что она более читаема.Кто-нибудь из вас знает, почему это не работает?

1 Ответ

0 голосов
/ 10 декабря 2018

Мне кажется, это ограничение Robot Framework.Когда ключевой элемент словаря начинается с цифры (даже если строка), то он потерпит неудачу.В следующих двух тестовых случаях это показано.

Для меня это звучит как дефект, и вы можете захотеть зарегистрировать это как проблему в журнале проблем проекта GitHub .

*** Settings ***
Library    Collections    

*** Variables ***
${name}             MyName
&{person}           name=${name} 
&{person_valid}     A1000=${person}    A2000=${person}
&{person_invalid}   1000A=${person}    2000A=${person}

*** Test Cases ***
TC - Valid
    ${pers}           Set Variable    ${person_valid.A1000}
    Dictionaries Should Be Equal    ${pers}    ${person}     

    ${pers_name_1}    Set Variable    ${person_valid["A1000"]["name"]}
    Should Be Equal As Strings    ${pers_name_1}    ${name}     

    ${pers_name_2}    Set Variable    ${person_valid.A1000.name}
     Should Be Equal As Strings    ${pers_name_2}    ${name}     

TC - Fails
    Run Keyword And Expect Error    
    ...    Resolving variable '\${person_invalid.1000A}' failed: SyntaxError: invalid syntax (<string>, line 1)   
    ...    Set Variable    ${person_invalid.1000A}    

    Run Keyword And Expect Error    
    ...    Resolving variable '\${person_valid.1000A.name}' failed: SyntaxError: invalid syntax (<string>, line 1)   
    ...    Set Variable    ${person_valid.1000A.name} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...