def assert_exception_writes_error_message(self, exception, message):
parser = cli.get_htsget_parser()
args = parser.parse_args(["https://some.url"])
saved_stderr = sys.stderr
try:
with tempfile.TemporaryFile("w+") as tmp_stderr:
sys.stderr = tmp_stderr
with mock.patch("htsget.get") as mocked_get, \
mock.patch("sys.exit") as mocked_exit, \
mock.patch("logging.basicConfig"):
mocked_get.side_effect = exception
cli.run(args)
tmp_stderr.seek(0)
stderr = tmp_stderr.read().strip()
mocked_exit.assert_called_once_with(1)
finally:
sys.stderr = saved_stderr
self.assertTrue(stderr.endswith(message))
评论列表
文章目录