Инструкция Python 3.7 Doctest «from..import» возвращает выходные данные, когда вся документация, которую я просматривал, ожидала «Ожидаемое ничего» - PullRequest
0 голосов
/ 02 октября 2018

Это результат выполнения doctest в python3 как python3 -m doctest -v test_inventory.txt

File "test_inventory.txt", line 10, in test_inventory.txt
Failed example:
    from inventory import process
Expected nothing
Got:
    {"project-abc": {"hosts": ["node1.project-abc.dc-1.dev.com", "node2.project-abc.dc-1.dev.com"]}, "dc-1": {"hosts": ["node1.project-abc.dc-1.dev.com", "node2.project-abc.dc-1.dev.com"]}, "dev": {"hosts": ["node1.project-abc.dc-1.dev.com", "node2.project-abc.dc-1.dev.com"]}, "_meta": {"hostvars": {"node1.project-abc.dc-1.dev.com": {"var1": 123, "var2": 456}, "node2.project-abc.dc-1.dev.com": {"var1": 123, "var2": 456}}}}

Это мой текстовый файл теста doctest: -

>>> from inventory import process
>>> process()
'{"project-abc": {"hosts": ["node1.project-abc.dc-1.dev.com", "node2.project-abc.dc-1.dev.com"]}, "dc-1": {"hosts": ["node1.project-abc.dc-1.dev.com", "node2.project-abc.dc-1.dev.com"]}, "dev": {"hosts": ["node1.project-abc.dc-1.dev.com", "node2.project-abc.dc-1.dev.com"]}, "_meta": {"hostvars": {"node1.project-abc.dc-1.dev.com": {"var1": 123, "var2": 456}, "node2.project-abc.dc-1.dev.com": {"var1": 123, "var2": 456}}}}'

Метод, который вызывает мой тест: -

def process():
   input_data = parser.generate_data()
   groupwise_host_info = build_groupwise_host_info(input_data)
   jsonOutput = parser.to_json(groupwise_host_info)
   return jsonOutput

Определенно ожидается, что он вернет строку json.Но шаг теста >>> из процесса импорта инвентаря - разве нельзя ожидать, что он ничего не даст вопреки тому, что показано в приведенном выше выводе?

Я доволен вторым этапом теставывод: -

Trying:
    process()
Expecting:
    '{"project-abc": {"hosts": ["node1.project-abc.dc-1.dev.com", "node2.project-abc.dc-1.dev.com"]}, "dc-1": {"hosts": ["node1.project-abc.dc-1.dev.com", "node2.project-abc.dc-1.dev.com"]}, "dev": {"hosts": ["node1.project-abc.dc-1.dev.com", "node2.project-abc.dc-1.dev.com"]}, "_meta": {"hostvars": {"node1.project-abc.dc-1.dev.com": {"var1": 123, "var2": 456}, "node2.project-abc.dc-1.dev.com": {"var1": 123, "var2": 456}}}}'
ok

Может ли кто-нибудь уточнить, почему тестовый шаг "from..import" возвращает вместо того, чтобы ничего не возвращать?

...