Как я могу сказать Robot Framework нормализовать экранированные пробелы в путях? - PullRequest
0 голосов
/ 08 мая 2018

Я хочу использовать путь типа ~/Library/Application\ Support/ и соединить его с правильной папкой и именем файла.Согласно документации робота, Join Path ключевое слово должно нормализовать результат.Тем не менее, в результате объединения все еще остается пробел с обратной косой чертой, который другое ключевое слово File Should Exist не может разрешить должным образом.

Так кто же делает что-то не так, Join Path, File Should Exist или я?

def get_os_application_support_path():
    return '~/Library/Application\ Support/'

и

Database Path
    ${OS_PATH}=             Get Os Application Support Path
    Run Keyword And Return  Join Path    ${OS_PATH}    'Database.db'

вернут '~/Library/Application\ Support/Database.db', хотя я ожидаю '~/Library/Application Support/Database.db'

1 Ответ

0 голосов
/ 09 мая 2018

normalize использует os.path.normpath, который устраняет двойную косую черту, но не вашу обратную косую черту.

В следующем примере экранированное пространство существует только в файле робота.

*** Settings ***
Library  OperatingSystem

*** Test Cases ***
Handle Spaces
    ${path}=  Join Path  ~/Library/Application\ Support  Foo.txt
    Log To Console  ${path}
    File Should Exist  ${path}

Обратите внимание, что Log To Console не имеет пробелов.

==============================================================================
Path                                                                          
==============================================================================
Handle Spaces
C:\Users\eddy.pronk\Library\Application Support\Foo.txt
| PASS |
------------------------------------------------------------------------------
Path                                                                  | PASS |
1 critical test, 1 passed, 0 failed
1 test total, 1 passed, 0 failed
==============================================================================
Output:  C:\work\output.xml
Log:     C:\work\log.html
Report:  C:\work\report.html

Протестировано с Python 2.7.14 и robotframework 3.0.4

...