我是刚开始python点击和统一测试,我想知道是否有人能帮助我理解如何处理密码提示在单元测试?
我为restconf创建了一个python模块,下面我调用了这个脚本
$ python restconf_cli.py GET -u developer -n sandbox-iosxe-latest-1.cisco.com -p Cisco-IOS-XE-native:native/version
Password:
{
"Cisco-IOS-XE-native:version": "17.3"
}现在,我正在编写unittest来运行相同的命令,但是它卡住了get,什么也没有发生,它可能正在等待密码提示,但不确定,请通知
$ python -m unittest tests/restconf_cli_restconf_get_test.py 这里是最简单的文件内容
#!/usr/bin/env python
from click.testing import CliRunner
import unittest
import restconf_cli
class RestconfCliRestconfGetTests(unittest.TestCase):
# breakpoint()
def test_restconf_get(self):
runner = CliRunner()
result = runner.invoke(restconf_cli.restconf_get,
['GET',
'-u developer',
'-n sandbox-iosxe-latest-1.cisco.com',
'-p Cisco-IOS-XE-native:native/version'
])
# print(result)
self.assertEqual(result.exit_code, 0)
if __name__ == '__main__':
unittest.main()我试过使用断点,但仍然看不到输出。
谢谢
发布于 2022-07-18 19:01:46
这是答案,我需要提供input=my_secret
class RestconfCliRestconfGetTests(unittest.TestCase):
def test_restconf_get(self):
runner = CliRunner()
result = runner.invoke(restconf_cli,
['GET',
'--username', 'developer',
'--hostname', 'sandbox-iosxe-latest-1.cisco.com',
'--path', 'Cisco-IOS-XE-native:native/version',
], input='my_secret\n')https://stackoverflow.com/questions/73026365
复制相似问题