首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >模仿Pathlib write_text?

模仿Pathlib write_text?
EN

Stack Overflow用户
提问于 2021-09-19 19:48:42
回答 2查看 39关注 0票数 0

我正在编写一个简单的函数,通过一些转换和yaml将一个字典写到磁盘上。测试发生了什么最简单的方法是捕获Path(file_name).write_text(text_to_write)的输出。但是我很难准确地理解我需要做什么来捕获这些内容。

代码语言:javascript
复制
def test_path_write():
    with mock.patch('Path.write_text', return_value=None):
        function_that_uses_path_write_text()
        assert 'Content I would like to be in the file' in SOME_KIND_OF_CAPTURE

你知道如何将一些东西放到SOME_KIND_OF_CAPTURE中,我可以用它来测试吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-09-25 01:49:11

使用pytest,下面是我所做的:

代码语言:javascript
复制
def test_writer(mocker):
    mocker.patch.object(Path, "write_text")

    [...]

    written_content = Path.write_text.call_args_list[0][0][0]
票数 0
EN

Stack Overflow用户

发布于 2021-09-19 20:00:52

你在找下面这样的东西吗?

代码语言:javascript
复制
with patch.object(Path, 'write_text') as patch_path:
    data_to_write = 'Something'
    patch_path.return_value = data_to_write

    path = Path('some/path')
    res = path.write_text(data_to_write)

print(res)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69246604

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档