Как проверить YAML для Python / Tavern - PullRequest
0 голосов
/ 31 мая 2019

Я программист на Python, поэтому я хотел бы использовать Таверна для тестирования API.

Это означает написание программы (тест API) на YAML.

Проблема в том, что когда я редактирую ввод YAML, он часто прерывается с ошибкой BadSchemaError. В таверне есть встроенная функция pykwalify, но сообщения об ошибках не очень полезны.

Часто я получаю сообщение об ошибке, подобное этому:

=================================================== test session starts ===================================================
platform linux2 -- Python 2.7.5, pytest-4.5.0, py-1.8.0, pluggy-0.12.0
rootdir: /home/*****/tavern
plugins: tavern-0.26.3
collected 0 items / 1 errors

========================================================= ERRORS ==========================================================
_________________________________________ ERROR collecting test_echo.tavern.yaml __________________________________________
/usr/lib/python2.7/site-packages/tavern/testutils/pytesthook/file.py:306: in collect
    raise_from(exceptions.BadSchemaError, e)
/usr/lib/python2.7/site-packages/future/utils/__init__.py:456: in raise_from
    raise e
E   BadSchemaError
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Interrupted: 1 errors during collection !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
================================================= 1 error in 0.13 seconds ======

Есть ли лучший способ проверить синтаксис YAML Tavern? Есть ли какие-либо параметры для pykwalify / tavern / что угодно, чтобы сообщения об ошибках были более полезными?

Я нашел Примеры таверны и поваренная книга , которые дают мне некоторое представление о синтаксисе, но написание моего собственного YAML - это хит и промах, и скорее промах, чем попадание.

Редактировать: в соответствии с pykwalify docs , я мог бы запустить pykwalify в CLI как:

pykwalify -d data.yaml -s schema.yaml

но где находится схема YAML для таверны?

1 Ответ

0 голосов
/ 03 июня 2019

Самоответ:

Да, YAML невероятно требователен к пробелам.Ровно 2 пробела на отступ.Мой vim делал 4 пробела.

Как только ваша базовая схема YAML верна, сообщения об ошибках становятся намного более полезными.

Начинайте с простейших примеров и часто запускайте тесты (для каждых нескольких строк).

...