Как написать yaml на python для нескольких тестовых случаев? - PullRequest
0 голосов
/ 30 ноября 2018

Я изучаю фреймворк Robot, используя python.Я ищу способы передачи данных в двух разных тестовых случаях.В Java это было легко.Я сделал класс для yaml и дал данные для двух отдельных тестовых случаев в файле yaml.Как я могу иметь такую ​​архитектуру в Python?Когда я пытаюсь предоставить данные в файле yaml, я получаю ошибку дублирующего ключа.Может кто-нибудь сказать мне, что я делаю неправильно, а также предложить способы передачи данных в несколько тестовых случаев с использованием одного yaml? Java_yaml Python_yaml

1 Ответ

0 голосов
/ 30 ноября 2018

Вы уверены, что получаете ошибку двойного ключа?Поскольку с вводом, который вы представляете, вы получите отображаемые значения, здесь не допускается ошибка:

import sys
import ruamel.yaml

yaml_str = """\
Get_Request
  alias : 'amway1'
  session_url : 'url2'

Post_Request
    alias : 'amway2'
    session_url : 'url2'
"""

yaml = ruamel.yaml.YAML()
try:
    data = yaml.load(yaml_str)
except Exception as e:
    print(e)

, которая дает:

mapping values are not allowed here
  in "<unicode string>", line 2, column 9:
      alias : 'amway1'
            ^ (line: 2)

Это потому, что вы пытаетесь использовать несколькопрямая скалярная линия в качестве ключа в начале этого YAML, и они недопустимы (они должны быть простыми, а не многострочными).Вы, вероятно, забыли вставить двоеточие (:) после Get_Request и Post_Request.

Get_Request:
  alias : 'amway1'
  session_url : 'url2'

Post_Request:
  alias : 'amway2'
  session_url : 'url2'

(Вы также должны последовательно сдвигать свой YAML с тем же количеством пробелов перед ключами,теперь у вас есть позиции 2 и 4. Это не обязательно для создания действительного YAML, и синтаксический анализатор примет его, но он должен правильно видеть структуру, когда люди проверяют ваш ввод).

...